home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 1 / Gold Medal Software Volume 1 (Gold Medal) (1994).iso / prog / tpwprog1.arj / INDEX.TXT next >
Encoding:
Text File  |  1992-07-02  |  83.5 KB  |  3,439 lines

  1. Turbo Pascal for Windows 3.0 Programming
  2. Copyright (C) 1991 by Tom Swan. All rights reserved.
  3. Index
  4.  
  5. #include directive, 284, 424
  6.  
  7. $A Align data, 826
  8. $B Boolean evaluation, 826
  9. $C Code directive, 831
  10. $D Embed text directive, 829, 831
  11. $D Debug information, 826
  12. $F Force far calls, 727, 826
  13. $G 286 code, 826
  14. $I Include directive, 831
  15. $I I/O checking, 284, 744, 826
  16. $L Link directive, 831
  17. $L Local symbols, 826
  18. $M Memory directory, 560, 830, 832
  19. $N 80x87 code, 826
  20. $R Resource directive, 375, 529, 710, 832
  21. $R Range checking, 827
  22. $S Stack checking, 737, 827
  23. $V String var checking, 827
  24. $W Stack frame, 827
  25. $X Extended syntax, 827
  26.  
  27. .BMP file, 299, 346, 351, 749
  28.   loading and displaying, 355-362, 810
  29.   reading, 354
  30. .CUR file, 388
  31. .DLG file
  32.   incorporating into resource script file, 427
  33. .DLL file, 713, 732, 829, 831-832
  34. .DRV file, 649, 680
  35. .EXE file, 713, 829, 830-832
  36. .ICO file, 364
  37. .INC. See Include files
  38. .INI file, 627
  39. .MAP file, 833
  40. .OBJ file, 831. See also Object code files
  41. .RES file, 388, 832. See also Resource file
  42. .TPU file, 713, 828-830, 832-833
  43.  
  44. /B Compile:Build, 829
  45. /D Options:Compiler, 829
  46. /E Options:Directories, 829
  47. /F Search:Find error, 829
  48. /GD Options:Linker, 829, 833
  49. /GP Options:Linker, 829, 833
  50. /GS Options:Linker, 829, 833
  51. /I Options:Directories, 829
  52. /L Options:Linker, 829, 833
  53. /M Compile:Make, 829
  54. /O Options:Directories, 829
  55. /Q Quiet, 829
  56. /R Options:Directories, 829
  57. /T Turbo, 830
  58. /U Options:Directories, 830
  59. /V Options:Linker, 830
  60.  
  61. 80286, 6, 8, 826
  62. 80386, 6, 8, 22, 51, 826
  63.   determing whether computer has, 84
  64. 80386SX, 22
  65. 80486, 6, 8, 826
  66. 8086, 8
  67. 8088, 8
  68.  
  69. @Self, 108
  70.   passing to TDialog's Init constructor, 431
  71.   purpose of, 431
  72.  
  73. A
  74.  
  75. Abort callback procedure, 687, 689
  76. Abort dialog, 687, 689, 692-694, 697
  77.   creating, 688
  78.   using, 698
  79. Abort procedure, 689, 692, 697
  80.   installing, 691
  81. AbortDoc, 654
  82. AbortProc, 690
  83. About Box dialog, 438, 642
  84.   displaying, 440
  85.   displaying using Application^.ExecDialog, 444
  86.   icon, displaying inside, 439
  87. About command
  88.   adding to system menu, 265
  89. About...
  90.   menu command, 438
  91. Abstract object, 578
  92. Accelerated commands
  93.   nonstandard Windows applications, 279
  94. Accelerator
  95.   associating with specific command, 284
  96. Accelerator command
  97.   flashing, 280
  98. Accelerator editor, 279-281
  99. Accelerator key labels
  100.   displaying, 281
  101. Accelerator keys, 666
  102. Accelerator label
  103.   adding to a command, 281
  104. Accelerator labels
  105.   aligned, 281
  106. Accelerator resource, 277, 279
  107.   creating multiple-key, 280
  108.   defined, 278
  109.   loading and using, 282-283
  110.   returning a handle to, 282
  111.   table, 279, 288
  112.   using ASCII keys for, 278
  113.   using virtual key codes for, 278
  114. Accent, 550
  115. Actor, 13, 42, 710
  116. Address
  117.   invalid, 71
  118. Address-of operator (@), 75, 91, 447, 738
  119.   using two, 734
  120. AddString, 590-591, 602-603
  121. After Dark screen blanker, 23
  122. AHIncr, 351
  123. Alias
  124.   creating, 90
  125. AllocMultiSel, 609
  126. Ampersand character (&), 143, 232
  127. Ancestor method
  128.   calling, 117
  129. Ancestor object pointer, 118
  130. Ancestor objects
  131.   pointers to, 585
  132. Animated graphics program, 212
  133. ANSI character set, 749
  134. AnsiNext, 661
  135. ansi_Fixed_Font, 182
  136. ansi_Var_Font, 182, 345
  137. API (Windows Application Program Interface), 12, 15-16, 729
  138. AppendMenu, 251, 256, 263, 265, 271-272, 275, 339, 346
  139.   creating new menu from scratch, 275
  140.   declared, 251-252
  141.   preference over InsertMenu, 254
  142. Application
  143.   detecting when minimized, 380
  144.   distinguishing between multiple, 158
  145.   global pointer, 611
  146.   global typed-constant pointer, 130
  147.   locating messages belonging to, 550
  148.   minimized, 376
  149.   startup sequence, 156
  150. Application framework, 122
  151. Application global variable, 431
  152. Application main window
  153.   dialog as, 602
  154. Application menu bar, 333
  155. Application message queue, 550, 552
  156. Application queue, 550
  157. Application window
  158.   minimized to icon, 379
  159. Applications
  160.   time, giving most to, 552
  161. Array
  162.   pointers to string constants, 502
  163. Array of bytes
  164.   to create bitmaps, 331
  165. Array of characters, 71
  166. Arrays of Char, 91
  167. Arrow, 399
  168.   default shape, 401
  169. ASCII keys, 278
  170. ASCII null, 71
  171. ASCII text, 749
  172. ASCIIZ string, 88, 93-95, 99, 100, 101, 110, 112, 132, 141, 
  173.   193, 367, 628, 720. See 
  174. also Null terminated strings and PChar
  175.   comparing two, 98
  176.   concatenating (joining) two, 97
  177.   converting length-byte strings to, 97
  178.   converting to length-byte variety, 98
  179.   copying two, 95
  180.   creating space for, 100
  181.   displaying, 205
  182.   emptying, 95
  183.   finding length of, 94
  184.   length, 88
  185.   passing to procedures and functions, 91
  186. ASCIIZ string copy functions, 96
  187. Assembly language, 710, 831
  188. Assign, 84, 86
  189. AssignCrt, 77
  190. Atom, 772-773, 776-778, 785, 793
  191. Atom table
  192.   deleting from, 774
  193. Attr, 139, 149
  194. Auto scrolling, 189. See also TScroller
  195.   inhibiting, 77
  196. AUTOEXEC.BAT, 25-27, 49
  197. AutoTracking, 77
  198. AWndClass, 375, 400
  199. AWndClass.Style, 194
  200.  
  201. B
  202.  
  203. Background
  204.   erasing, 329
  205.   running program in, 380
  206.   showing through cursor's image, 388
  207. Background color, 187-188
  208.   erasing the client area, 201
  209. Background pattern, 325
  210. bf_Checked, 607
  211. bf_Grayed, 607
  212. bf_Unchecked, 607
  213. Bit blasting, 301
  214. BitBlt, 301, 305-307, 311-312, 314, 318-320, 347, 361-362, 
  215.   377, 673, 678
  216.   declared, 304
  217. Bitmap
  218.   attribute options, 300
  219.   converting to a brush structure, 320
  220.   copying into memory, 306
  221.   creating, 300
  222.   creating at runtime, 298
  223.   creating offscreen, 314, 318
  224.   creating uninitialized device-dependent, 332
  225.   defined, 297
  226.   deselecting from a DC, 303
  227.   displaying, 302, 360
  228.   displaying onscreen, 307
  229.   dumping contents in hexadecimal, 227
  230.   inserting into a menu, 264
  231.   loading and displaying, 300
  232.   maximum size, determining, 346
  233.   minimum size to display string, 345
  234.   printing, 678, 699
  235.   selecting the same twice, 320
  236.   three main ways to create, 298
  237. Bitmap data
  238.   in the clipboard, 762
  239. Bitmap editor, 298, 300, 308, 321
  240. Bitmap files
  241.   reading and displaying, 346
  242. Bitmap handle, 339
  243.   obtaining, 302
  244. Bitmap pattern, 253
  245. Bitmap resource, 299, 311, 313
  246.   and backgrounds, 325-329
  247.   and brushes, 320-324
  248.   and display contexts, 301
  249.   and-xor method for displaying, 366
  250.   as a checkmark in menu item, 329
  251.   color, 298
  252.   creating inside program listing, 331
  253.   deleting, good place to, 311
  254.   displaying, 312, 359
  255.   displaying color on monochrome, 305
  256.   displaying inside visible window, 362
  257.   drawing into, 304-306, 312-320
  258.   importing from clipboard, 768
  259.   large, 338
  260.   loading into memory, 302
  261.   monochrome, 298, 332
  262.   preparing for drawing, 312
  263.   small-font, 340, 344-345
  264.   using as a brush, 320
  265. blackness, 305
  266. black_Brush, 182
  267. black_Pen, 182
  268. Blank bitmap, 313
  269. Blank icon, 371, 378
  270. Block transfer, 301
  271. BlockRead, 84, 351
  272. BlockWrite, 84
  273. bm_GetCheck, 435, 437, 466, 479
  274. bm_SetCheck, 434-435, 466, 477
  275. bn_Clicked, 583, 606
  276. bn_DoubleClicked, 583
  277. Bool, 202
  278. Boolean data type
  279.   equivalents, 202
  280. Boolean expressions
  281.   evaluating complex, 34
  282.   results of combining pixels, 305
  283. Borland C++, 14
  284. Borland International, 3
  285. Borland Language Express, 618
  286. Breakpoints
  287.   setting, 52-53
  288.   setting for specific message, 54
  289. Brush
  290.   creating from the bitmap, 320
  291.   custom, using as a window background, 328
  292. Brush handle, 325
  293. Brush pattern, 208
  294.   using different, 325
  295. Brushes
  296.   and bitmaps, 320-324
  297.   creating and selecting, 207
  298.   identifying by handles, 323
  299.   selecting, 206-212
  300. Bugs
  301.   hunting for, 53
  302. Busy display
  303.   organizing, 586
  304. Button
  305.   moving focus to selected, 478
  306.   pressing Enter and Esc to select, 584
  307.   setting ws_Tabstop style bit, 478
  308.   text inside of, 582
  309. Button groups
  310.   tabbing among, 466
  311. Button label
  312.   altering, 464
  313.   changing, 423
  314. Button selections, 579
  315.  
  316. C
  317.  
  318. C headers
  319.   converting to Pascal, 729
  320. C library functions, 744
  321. C programming language, 89, 710, 837
  322. C programs
  323.   converting to Pascal, 71
  324. C++, 13
  325. C++/Views, 14
  326. Callback functions, 171, 687, 690, 744
  327. Cancel button, 432, 446, 462-463, 479, 483, 542, 547-549, 553, 
  328.   579, 663, 688, 690, 692, 698
  329. Cancel method, 428, 547
  330. CanClose, 450-451, 461, 465, 489, 542, 822
  331.   and printing, 693
  332.   retrieving text from edit control, 482
  333.   to prevent loss of data, 540
  334. Caption. See Window title
  335. CascadeChildren, 822
  336. Cascaded menus. See Multilevel menus
  337. cb_AddString, 503
  338. cb_Err, 503
  339. cb_GetCurSel, 503
  340. cb_GetLbText, 504
  341. cb_GetLbTextLen, 503
  342. cb_LimitText, 503
  343. cf_Bitmap, 749
  344. cf_DIB, 749
  345. cf_DIF, 749
  346. cf_MetaFilePict, 749
  347. cf_OEMText, 749, 757
  348. cf_Sylk, 749
  349. cf_Text, 749, 757-758, 777
  350. cf_Tiff, 749
  351. Changes
  352.   undo, 31
  353. Chapters
  354.   about, 17-19
  355. Character
  356.   copied from control, 596
  357.   double quote, entering, 517
  358. Character array constants, 92
  359. Check, 586
  360.   proper place to call, 588
  361. Check box, 435, 466-480, 616
  362.   creating, 472
  363.   current state of, 586
  364.   initializing, 477
  365.   initializing a group, 470
  366.   retrieving, 470
  367.   retrieving values, 479
  368.   single, 585
  369.   storing in 16-bit Pascal sets, 470
  370.   storing in sets, 477
  371.   turn on by default, 610
  372. Check box control, 437
  373.   communicating with, 477
  374.   creating, 584
  375.   methods to call for, 586
  376.   responding to events generated by, 480
  377.   retrieving status of, 435
  378.   sending a message to, 430
  379. Check box events, 586
  380. CheckBreak, 71
  381. CheckEOF, 72
  382. Checkmark. See also Menu command
  383.   creating custom, 331
  384.   custom bitmap, 338
  385.   deleting from box, 586
  386.   displaying, 242
  387.   displaying in box, 586
  388.   method to add and remove, 263
  389.   removing, 242
  390.   using bitmap in a menu item, 329
  391.   width and height, 330
  392. Checkmark commands
  393.   responding to, 244
  394. Checkmark dimensions, 332
  395. Checkmark pattern
  396.   attaching custom to menu, 334
  397. Checkmarked, 253
  398. Checkmarked commands, 231
  399. Checkmarked menu items
  400.   enhancing, 333
  401. CheckMenuItem, 240, 249, 265
  402.   declared, 241
  403. Child
  404.   detecting close, 574
  405. Child and popup windows. See also Child windows
  406.   creating, 562-575
  407.   disposing, 567
  408.   types, 562-563
  409. Child control windows, 437, 603, 631
  410.   displaying, 445
  411.   initializing to the values in, 611
  412.   managing, object-oriented approach, 602
  413.   storing in the transfer buffer, 607
  414. Child ID message, 583
  415. Child objects, 541, 617
  416. Child window constructor, 572
  417. Child window handle, 573
  418. Child window object, 572
  419. Child windows, 537-538, 562, 564
  420.   address of previous, 596
  421.   closing explicitly, 567
  422.   command response methods, 816
  423.   custom message handlers for, 537
  424.   displaying an icon for, 818
  425.   in DDE conversation, 772
  426.   inside MDI frame window, 805
  427.   menus, 566
  428.   minimized as icons, 805
  429.   notifying parents, 573
  430.   represented by objects, 537
  431. ChildList, 572, 807, 819
  432. ChildMenuPos, 816-817
  433. Class cursor, 390, 400
  434. Class icon, 371-372, 379, 439
  435.   included in OWL program, 375
  436.   using LoadIcon to specify, 376
  437. Clear command, 768
  438. Clicking and Dragging, 402-413
  439. Client, 772, 779, 785-786, 792, 795
  440.   honor request for information, 777
  441. Client area, 185, 360, 401, 705. See also Window, client area
  442.   accounting for size while scrolling, 704
  443.   and child windows, 563
  444.   controls placed inside, 425
  445.   mouse pointer within, 391
  446.   providing scrolling services to, 703
  447. Client window, 776, 808
  448.   obtaining handle, 807
  449. Client server relationship, 771-772. See also DDE
  450. Clients, 775
  451. ClientToScreen, 275
  452.   declared, 275-276
  453. Clipboard, 747-748
  454.   emptying, 750
  455.   extracting bitmap data from, 762
  456.   extracting bitmaps from, 770
  457.   opening and closing, 749-750
  458.   retrieving text stored in, 756
  459.   text, finding whether it has, 757
  460.   transferring text into, 755
  461. Clipboard data
  462.   creating memory block to hold, 750
  463.   dealing with, 753
  464.   most common format, 749
  465.   pasting to an edit control, 434
  466.   second most common format, 762
  467. Clipboard data transfers, 750
  468. Clipboard formats, 775-777
  469. Clipboard memory block
  470.   returning number of characters, 759
  471. Clipboard viewer, 748, 753, 759, 762
  472. ClipCursor, 418-420
  473. Clipping, 165
  474.   essential element of Windows, 165
  475. CloseClipboard, 489, 750, 752, 770
  476. CloseWindow, 154-155, 361, 542, 548, 567, 584
  477. Closing techniques
  478.   deviations from standard, 432
  479. CmdLine, 65
  480. cm_FilePrint, 666
  481. cm_First, 136-137, 152, 231-232, 238, 248, 252, 430, 440
  482. cm_Internal, 137
  483. cm_TileChildren, 807
  484. Code segment, 727
  485.   attributes, 831
  486.   swapping in and out of memory, 718
  487. CodeView debugger, 12, 47
  488. Collection of strings, 608
  489. Color, 640. See also System color
  490.   choosing good-looking, 186
  491.   coordinating, 627
  492.   painting solid, 206
  493.   selecting, 186-188
  494.   selecting automatically, 643
  495.   simplest method for choosing, 186
  496. Color combinations, 641
  497. Color printers, 678
  498. Color settings, 623
  499. Color utility, 627
  500. Color value
  501.   obtaining for screen element, 626
  502. color_Background, 626
  503. color_Highlight, 627
  504. color_Menu, 627
  505. color_Scrollbar, 627
  506. Columnar menus, 231
  507. Combo box, 501-511, 597
  508.   adding strings to list portion, 597
  509.   creating, 597
  510.   getting length of selection, 503
  511.   initialization, 597
  512.   labeling with static text control, 501
  513.   retrieving selections from, 503
  514.   types of, 501, 505
  515. Combo box control object
  516.   creating, 578
  517.   initializing contents, 502
  518. Combo box list
  519.   adding string to, 511
  520. Combo box selections
  521.   storing at runtime, 503
  522. Combo box style, 501
  523. COMMAND.COM, 25
  524. Command-line compiler, 37-39, 825
  525.   configuration file, 42
  526.   limitations, 38
  527. Command-line parameters, 32, 65
  528. Command name
  529.   changing, 264
  530. Command response method, 231-233, 248, 252, 263
  531.   and the accelerator key, 283
  532.   and the system menu, 266
  533. Commands
  534.   changing state of, 462
  535.   disable, 462
  536.   disabling selected, 250
  537.   displaying in grayed out style, 256
  538.   enabling or graying, 768
  539.   gray, 462
  540.   inserting new in a menu, 252
  541.   number in a menu, 264
  542.   passing along unprocessed, 267
  543.   preventing inappropriate selection, 257
  544. Common User Access. See CUA
  545. Communicating with controls, 479
  546. Compatible bitmap, 319
  547. Compatible DC, 319. See also Memory DC
  548. Compilation
  549.   speed, 829
  550. Compile large programs, 38
  551. Compile menu, 33
  552. Compiled code
  553.   and DLL's routines, 717
  554. Compiled programs
  555.   running, 39-40
  556. Compiler options, 33, 825-832
  557. Compiling
  558.   trouble, 41
  559.   wrong program, 33
  560. Concat, 87
  561. Conditional compilation, 124-125, 828
  562. CONFIG.SYS, 24-25
  563. Configuration
  564.   printer, 648
  565. Configuration file
  566.   editing, 42
  567.   integrated environment, 42
  568. Constructor, 108-112
  569.   key word, 109
  570.   multiple, 109
  571. Control
  572.   activity inside, 592
  573.   automatic selection of text in, 499
  574.   copying text, 498
  575.   default features, customizing, 603
  576.   hiding and showing, 589
  577.   highlighting text in, 499
  578.   ID used to close dialog, 432
  579.   initializing, 479
  580.   inserting text for editing, 482
  581.   Item Attributes Item ID field, 432
  582.   maximum characters to use, 482
  583.   retrieving style, 478
  584.   saving a pointer to, 581
  585.   sending messages to, 435
  586. Control events, 586, 603
  587.   responding to, 583
  588. Control IDs
  589.   predefined, 432
  590. Control in a parent window
  591.   virtual index for, 583
  592. Control object, 578, 580
  593.   creating, fundamental steps in, 579
  594.   default style option, 578
  595.   disposing of, 584
  596.   handling its own messages, 603
  597.   initializing, 603
  598.   initializing dialog's, 602
  599.   initializing to values in transfer buffer, 617
  600.   responding to events generated, 603
  601.   restoring values, 607
  602.   saving values, 607
  603.   Show method, 589
  604.   simplest, 579
  605.   storing a pointer to, 584
  606.   transfer mechanism, 578
  607.   transferring data to and from, 611
  608. Control object child windows
  609.   enabling keyboard support, 584
  610. Control object constructor, 599
  611. Control Panel, 655, 660, 680
  612.   printer settings, default, 650
  613.   using to change printer, 654
  614. Control Panel Color program, 187, 617
  615. Control Panel Mouse utility, 192
  616. Control Panel Printer utility, 656
  617. Control resource, 436
  618. Control types
  619.   six standard, 425
  620. Control values
  621.   keeping, 470
  622.   packing in small space, 470
  623.   storing, 616
  624. Control window
  625.   obtaining handle to, 435
  626.   shifting focus to another, 432
  627. Control window style bits, 594
  628. Control windows
  629.   adding text, 481
  630.   messages generated by, 480
  631. Control
  632.   text, erasing, 589
  633. Control actions
  634.   message response method to handle, 582
  635. Control identifier
  636.   storing the, 566
  637. Control initial value
  638.   quoted text used as, 593
  639. Control message response method, 592
  640. Control parent window
  641.   handle, use of correct, 437
  642. Controls, 423, 433. See also Dialog box
  643.   as highly specialized child window, 577
  644.   communicating with, 436, 510
  645.   copying data from transfer buffer, 611
  646.   how Windows groups, 468
  647.   identifying by handles, 478
  648.   identifying numerically, 425
  649.   Item Attributes, 426
  650.   parents, must have, 582
  651.   passing information, 435
  652.   restriction to dialog boundaries, 425
  653.   scroll bars in, 425
  654.   shift-clicking, 426
  655.   sibling, in windows, 623
  656. Controls in dialogs, 426-427
  657.   tabbing trick, 468
  658. Controls in windows, 577
  659. Controls without resources, 617-643
  660. Conventional programming techniques
  661.   in an event-driven environment, 134
  662. Conversation. See also DDE
  663.   broken, trick to prevent, 794
  664.   ending, 778
  665.   establishing between client and server, 775-777
  666.   permanent DDE, 794
  667.   starting, 793
  668. Coordinate values
  669.   storing display, 275
  670. Coordinates
  671.   converting local to global, 275
  672.   pixel-based, 140
  673. Copy, 87
  674. Copy command, 747, 761, 768
  675.   implementing, 753
  676. Copyright notice, 831
  677. Copyright symbol (⌐)
  678.   to type, 438
  679. Create method, 579
  680. CreateBitmap, 332
  681.   declared, 332
  682. CreateCompatibleBitmap, 345, 346, 377, 770
  683.   declared, 313
  684. CreateCompatibleDC, 302, 306-307, 311-312, 318, 361, 649, 678
  685. CreateCursor
  686.   declared, 420
  687.   deleting cursor created by, 420
  688. CreateDC, 354, 652-656, 662, 697
  689.   declared, 649-650
  690. CreateDIBitmap, 354
  691. CreateHatchBrush, 206, 208, 211
  692.   declared, 207
  693. CreateMenu, 263
  694. CreatePatternBrush, 320, 323
  695. CreatePen, 178, 181, 185, 187
  696.   declared, 178-179
  697. CreatePopupMenu, 256, 271-272, 275
  698.   declared, 255
  699. CreateSolidBrush, 206-207, 211, 346
  700.   declared, 206
  701. CreateWindow, 566
  702. CRT screen
  703.   vs. printer, 646
  704. cs_ByteAlignClient, 195
  705. cs_ByteAlignWindow, 195
  706. cs_ClassDC, 195
  707. cs_DblClks, 194-195, 583
  708. cs_GlobalClass, 195
  709. cs_HRedraw, 194-195
  710. cs_NoClose, 195
  711. cs_OwnDC, 195
  712. cs_ParentDC, 195
  713. cs_SaveBits, 195
  714. cs_VRedraw, 194-195
  715. CUA (Common User Access), 11, 34, 136, 805, 837
  716. Cursor, 176. See also Mouse pointer
  717.   animating, 414, 420
  718.   changing to hourglass, 413
  719.   defined, 388
  720.   loading, 398
  721.   moving, 419
  722.   restoring to custom shape, 401
  723.   storing in multiple formats, 388
  724. Cursor bitmap, 399
  725.   custom, 401
  726. Cursor clipping
  727.   resetting to normal, 419
  728. Cursor editor, 388, 392, 420
  729. Cursor functions, 418
  730. Cursor hot spot, 411
  731.   filling TPoint record with, 419
  732. Cursor keys
  733.   use to shift focus, 586
  734. Cursor movement
  735.   restricting, 418
  736. Cursor movements, 391
  737. Cursor position
  738.   getting, 419
  739. Cursor resource
  740.   displaying, 390
  741.   identifying, 389, 397
  742. Cursor shape
  743.   changing, 401, 409
  744.   changing the current, 397
  745.   modifying, 391
  746. Cursors
  747.   built-in, 393
  748.   creating at runtime, 420
  749.   using custom and stock, 392-397
  750. CursorXY, 77
  751. Custom backgrounds, 326
  752. Custom checkmark. See also Checkmark
  753.   using a bitmap as, 330
  754. Custom cursor
  755.   loading, 398
  756. Custom menu item, 253
  757. Custom scroll bar, 634
  758. Custom scroll bar objects, 640
  759. Custom system menus, 231
  760. Cut command, 747, 761, 768
  761.  
  762. D
  763.  
  764. Data
  765.   sharing for unrelated programs, 747
  766. Data formats
  767.   storing in clipboard, 748
  768. Data Interchange Format. See DIF
  769. Data overlay, 514
  770. Data segment, 99, 338, 744, 832
  771.   global variables and stack, 712
  772.   used by DLL, 711
  773. Data segment register, 691
  774. Data transfer buffer, 610
  775.   initializing, 610
  776. Data entry screens, 492
  777. DC. See also Display context
  778.   retaining control over, 408
  779. DDE, 771
  780.   ending a conversation, 778-779
  781.   links: cold, warm and hot, 794-795
  782.   sending and receiving data, 777-778
  783.   starting a conversation, 775-777
  784. DDE (Dynamic Data Exchange),354, 747
  785. DDE conversations, 771-802
  786.   PostMessage vs. SendMessage, 777
  787. DDE links
  788.   warm and hot, 772
  789. dde_Ack, 793
  790. Dead character, 550
  791. Debug info, 833
  792. Debugging, 826, 828, 830, 833, 838
  793.   and overriding DefNotificationProc, 606
  794.   printing strategic information, 649
  795. Debugging printer output, 655
  796. Default arrow
  797.   restoring, 413
  798. Default button, 579
  799.   positioning cursor over, 420
  800. Default printer, 654. See also Printing
  801. Default pushbutton, 582
  802. Default window class
  803.   changing, 193
  804. default_Palette, 182
  805. DefNotificationProc, 603, 606, 632
  806.   calling inherited method, 606
  807.   overriding TButton's, 605
  808. DefWndProc, 53, 267, 289, 480, 595
  809.   overriding, 594
  810. Delete, 87
  811. DeleteDC, 653, 663
  812. DeleteMenu, 254-256, 263, 270
  813.   declared, 254
  814. DeleteObject, 180-181, 185-186, 300, 311, 420
  815.   and brushes, 324
  816. DeleteString, 602
  817. DemandLoad, 831
  818. Descendant object, 112-113. See also Object
  819. Descendant pointer, 118-119
  820. Desktop
  821.   displaying icons on, 371-379
  822. DestroyMenu, 256, 272
  823. Destructor, 108-112
  824.   implementation, 111
  825.   multiple, 109
  826. Development system
  827.   ideal, 22
  828. Development tools
  829.   traditional Windows, 11-15
  830. Device
  831.   initialization parameters, 680
  832. Device context, 164. See also Display context
  833.   handle to, 650
  834.   printing, 697
  835. Device context handle, 662, 672
  836.   obtaining, 652
  837. Device driver, 9, 24, 649
  838.   sending print commands directly to, 656
  839. Device driver file name, 721
  840. Device drivers
  841.   calling FreeLibrary, 687
  842.   DLLs in disguise, 711
  843.   older version 2, 687
  844. Device independence, 9
  845. Device name, 655
  846. Device dependent bitmap, 297-299, 303, 313, 332, 749
  847.   as icons, 364
  848. Device independent bitmap. See DIB
  849. Device independent graphics, 672
  850. Device independent printing. See Printing
  851. Device independent programming, 186
  852. DeviceMode, 687
  853. device_Default_Font, 182
  854. Dialog. See also Modal dialog and Modeless dialog
  855.   activating, 441
  856.   activating with single statement, 431
  857.   as application's main window, 602
  858.   closing, 432
  859.   closing, creating custom, 432
  860.   closing, providing means to, 467
  861.   common window, 562
  862.   control ID used to end, 431
  863.   Create method, 540
  864.   different method for bringing up, 440
  865.   display progress reports, 549
  866.   displaying, 441
  867.   edit control box, 449
  868.   end, test for external condition, 549
  869.   ending, 427
  870.   icon control in, 439
  871.   input focus, 432
  872.   keystrokes, processes, 547
  873.   message, intended for, 549, 552
  874.   registering as window class, 562
  875.   SetFocus, 549
  876.   Show method, 549
  877.   System Menu Switch, 427
  878. Dialog and control objects, 572
  879. Dialog and its controls
  880.   interfacing with, 497
  881. Dialog Attributes window, 426
  882. Dialog box, 11, 140, 366, 423, 538
  883.   designing, 470
  884.   using control objects, 598
  885. Dialog box title, 141
  886. Dialog caption
  887.   changing, 464
  888. Dialog controls
  889.   passing string to, 549
  890.   Windows taking charge of, 433
  891. Dialog creation, 428
  892. Dialog editor, 424, 426, 431, 434-435, 467-468, 481, 490, 501
  893. Dialog instances
  894.   storing on heap, 429
  895. Dialog menu
  896.   Show Item ID, 427
  897.   Show Tab Order, 427
  898. Dialog object
  899.   and interface element, 540
  900.   initializing, 441
  901. Dialog resource, 538
  902.   identifying uniquely, 446
  903.   name, 430-431
  904. Dialog script
  905.   including, 424
  906. Dialog window, 452
  907. Dialog window title
  908.   changing, 547
  909. Dialog caption, 426
  910. Dialog controls
  911.   keeping track of values, 429
  912. Dialog resource
  913.   template for TDialog, 429
  914. Dialog setting. See also Transfer Buffer
  915.   keeping track, 479
  916. Dialog window
  917.   setting focus, 688
  918. Dialogs
  919.   behaving like windows, 599
  920.   controls in different, 425
  921.   creating to interact with list controls, 492
  922.   creating using script-commands, 424
  923.   designing interactive, 481
  924.   designing useful, 499
  925.   difference between windows and, 428
  926.   handling complex, 445
  927.   interactive, 480
  928.   keyboard support in, 466
  929.   used as data-entry screens, 489
  930.   using transfers, 607
  931.   well-designed, 466
  932.   writing interactive, 483
  933. DIB (device independent bitmap), 297, 299, 749
  934.   main advantage of, 299
  935. DIF (data interchange format), 749
  936.  
  937. Digital readout
  938.   updating scroll bar, 632
  939. Direction value, 611
  940. Directory
  941.   displaying, 553
  942. DisableAutoCreate, 567
  943. DISCARDABLE, 516
  944. Discardable, 831
  945. Discardable memory, 548
  946. Disk cache, 24
  947. Disk file
  948.   directing printer output to, 650
  949. Disk files, 452
  950. Disk space
  951.   shortage of, 690
  952. DispatchMessage, 417, 550-551, 690
  953.   declared, 552
  954. Display
  955.   scrolling automatically, 77
  956.   speeding up complex patterns, 312
  957. Display context, 164, 166, 168-169, 177-178, 185, 303, 312, 
  958.   328, 649, 705. See 
  959. also Memory DC
  960.   and bitmaps, 301
  961.   attaching pen to, 179
  962.   drawing into an uninitialized, 409
  963.   obtaining, 169-170, 176
  964.   obtaining for a window, 303
  965.   obtaining from Windows, 175
  966.   releasing, 177
  967.   selecting newly created brush, 207
  968.   using new font in, 345
  969. Display resolutions, 365
  970.   switching, 29, 49-50
  971. Displaying boxes and buttons, 586
  972. Dispose
  973.   and destructor, 110
  974. Disposing modeless dialogs, 541-542
  975.  
  976. Dithered colors, 187
  977.   mixed from other solid colors, 641
  978.   Window's rejection of, 642
  979. dkGray_Brush, 182
  980. DLL (Dynamic Link Library), 649, 679, 707-745
  981.   adding entry and exit code to, 739
  982.   advantages and disadvantages, 710
  983.   communicating with programs, 744
  984.   data segment, maximum size, 711
  985.   defined, 708
  986.   exit code, adding automatic, 737
  987.   exiting procedures in, 827
  988.   interfacing your code with, 709
  989.   loads and discards, control over, 732
  990.   multiple startup sections, 738
  991.   name conflicts, 728
  992.   searching for specific by name, 725
  993.   shareable, 721
  994.   shell for housing, 723
  995.   startup code, 736
  996.   startup-order dependencies, 738
  997. DLL code file, 728
  998. DLL Code file
  999.   loading into memory, 732, 743
  1000. DLL file name, 733
  1001. DLL instance, 712
  1002. DLL restrictions, 743-744
  1003. DLL routines
  1004.   importing dynamically, 734
  1005.   searching by name, 728
  1006.   values, persisting between calls, 722
  1007. DLL runtime error, 744
  1008. DLL source file, 711
  1009. DLL subroutine
  1010.   interfacing to, 715
  1011. DLL exit code, 736, 743
  1012. DLL file name, 732
  1013. DLL startup block
  1014.   signalling an error inside, 741
  1015. DLL startup code, 738
  1016. DLL subroutines
  1017.   converting for use by TPW, 730
  1018. DMT (dynamic method table), 136
  1019. dm_Copy, 681-682, 687
  1020. dm_Modify, 681
  1021. dm_Prompt, 681, 687
  1022. dm_Update, 681
  1023. Done destructor
  1024.   important step, 324
  1025. DoneWinCrt, 72
  1026. DOS
  1027.   running programs that use mouse, 26
  1028. DOS and Windows
  1029.   converting code between, 122
  1030. DOS command, 795
  1031. DOS debug, 655
  1032. DOS disk error, 686
  1033. DOS programs
  1034.   translating for Windows, 64
  1035. DOS TSR. See TSRs
  1036. DOS Turbo Debugger, 46, 50
  1037. DOS Turbo Pascal, 9, 13-14, 26, 64-65, 69-70, 73-74, 84, 87, 
  1038.   101, 120, 122, 546, 647
  1039.   Crt unit, 69, 73, 77
  1040.   file-handling techniques in, 463
  1041.   tutorial, 838
  1042. DOS utilities
  1043.   online help, 55
  1044. Dot notation, 103, 116
  1045. Dot-matrix printers, 652, 673
  1046. Double border window
  1047.   creating, 565
  1048. Double Click Speed interval, 192
  1049. Double clicking, 192-194, 454
  1050.   button response, 583
  1051. Dragging and clicking, 402-413
  1052. DrawIcon, 377, 379
  1053.   declared, 376
  1054. Drawing
  1055.   preparing bitmaps for, 312
  1056. Drawing and erasing, 402
  1057. Drawing mode, 409
  1058.   preserving current, 219
  1059.   selecting, 403
  1060. DrawMenubar, 339
  1061. DrawMenuBar, 254-258
  1062.   declared, 254
  1063. DrawText, 201
  1064. Driver file
  1065.   getting name of, 679
  1066. Driver settings
  1067.   default, 653
  1068. Drivers
  1069.   extended capabilities of ver 3.0, 686
  1070. Drop down box, 501, 503
  1071. dstInvert, 305
  1072. Dual monitor setup, 48
  1073. Dynamic Data Exchange. See DDE
  1074. Dynamic icon
  1075.   good use for, 380
  1076. Dynamic importing, 725-726, 732-736, 738. See also DLL
  1077.   example, 734
  1078. Dynamic Link Library. See DLL
  1079. Dynamic linking, 709, 726
  1080. Dynamic menu routines, 263-265
  1081. Dynamic menus, 231, 249
  1082.   programming, 258-265
  1083. Dynamic method index, 101
  1084. Dynamic method table. See DMT
  1085. Dynamic text object, 589
  1086. Dynamic virtual method, 121
  1087.  
  1088. E
  1089.  
  1090. Edit, 481
  1091. Edit control, 433, 482, 501, 579 593
  1092.   Auto HScroll option, 481
  1093.   getting text, 482
  1094.   interactive, 483
  1095.   kinds of, 481
  1096.   retrieving edited text, 489
  1097.   sending text to, 489
  1098.   single- and multiline, 480-489
  1099.   storing text entered into, 488
  1100.   two kinds, 592
  1101. Edit control resources
  1102.   creating, 481
  1103. Edit dialog
  1104.   sample, 483-489
  1105. Edit menu, 31, 279, 747
  1106. Edit window, 597
  1107. Editing options, 34
  1108. Editor
  1109.   creating sophisticated, 663
  1110. EGA display, 25
  1111. Ellipse, 168, 402, 409, 649, 672, 708-709
  1112.   drawing, 168
  1113. EMM386.SYS, 25
  1114. EmptyClipboard, 489, 750, 752, 758
  1115. em_InvalidChild, 540
  1116. em_InvalidClient, 540
  1117. em_InvalidMainWindow, 540
  1118. em_InvalidWindow, 540
  1119. em_LimitText, 482, 498
  1120. em_SetSel, 451-452, 499
  1121. EnableAutoCreate, 539, 541
  1122. EnableKBHandler, 547, 584, 586
  1123. EnableMenuItem, 257-258, 265
  1124. EnableTransfer, 611
  1125. Encapsulating data and code, 450
  1126.   primary reason for, 103
  1127. Encapsulation, 102
  1128. EndDoc, 653-654, 663, 693
  1129. Enhanced mode, 8, 351, 513, 827
  1130. Entry and exit code
  1131.   in DLLs, 736
  1132. Environment
  1133.   for specific outport port, 682
  1134. Eof, 84
  1135. Epson printer, 650
  1136. EPSON9.DRV, 652
  1137. Error, 540
  1138.   constants, 540
  1139. Error handling, 100, 648
  1140. Error message, 363, 518, 648
  1141.   displaying, 160
  1142. Error message box, 452
  1143. Error message dialog, 461, 540
  1144. Error messages, 37, 517
  1145.   redisplaying most recent, 32
  1146.   string tables, 514
  1147. Error values
  1148.   from Escape, 651
  1149. Errors, Printing
  1150.   detecting using DOS, 648
  1151. Escape, 650-654, 656, 660, 662-663, 689, 691-692, 697
  1152.   declared, 651
  1153. Escape code, 281
  1154. Escape codes, 653-654
  1155. es_AutoHScroll, 594
  1156. es_AutoVScroll, 594
  1157. es_Left, 594
  1158. es_Multiline, 594
  1159. Event, 132
  1160.   simulating, 640
  1161. Event driven programming, 122, 133-136, 537
  1162. Events, 10, 15
  1163.   responding to, 134
  1164.   scroll bar, 632
  1165. ExecDialog, 431-433, 440, 464, 479, 498, 539, 562, 578, 611
  1166.   inspecting result of, 454
  1167. Exit chain, 737. See also DLL exit code
  1168. Exit code, 744
  1169. Exit command
  1170.   appending to a menu, 251
  1171. Exit procedure, 737-739, 742
  1172. Exit... constants, 65
  1173. ExitCode, 739, 741
  1174. ExitProc, 737-739
  1175. ExitProgram, 795
  1176. Expanded memory, 8
  1177. Export, 722
  1178.   procedure directive, 690, 692, 711, 713
  1179. Export declaration, 718
  1180. Export directive, 713-715
  1181. Exportation
  1182.   simplest form, 723
  1183. Exported procedures, 713
  1184. Exported routine
  1185.   alias name for, 724
  1186.   name index, 725
  1187. Exports section, 711, 714-715, 723, 725, 728
  1188.   and multiunit DLLs, 724
  1189. Expressions
  1190.   folding (evaluating) during compilation, 135
  1191. ExtDeviceMode, 679-682, 686
  1192. Extended memory, 8, 22, 24, 513
  1193. Extended syntax (/$X+), 34, 41, 70, 93, 180
  1194. Extent, 346
  1195. External, 727
  1196.   identifier, 709
  1197. External declarations, 709, 727
  1198. External directive, 715
  1199. ExtTextOut, 201
  1200.  
  1201. F
  1202.  
  1203. Far
  1204.   key word, 727, 737
  1205. Far code model, 727
  1206. Far directive, 690
  1207. Far code memory model, 722
  1208. Fields
  1209.   inserting in transfer buffer, 609
  1210. File
  1211.   determining if in DIB format, 351-352
  1212.   determining if open, 461
  1213.   guarding against closing, 455
  1214.   openings and closings in DLLs, 744
  1215.   printing, 30
  1216.   reopening, 30
  1217.   saving changes before quitting, 461
  1218. File dialog, 597
  1219.   displaying, 453
  1220.   displaying file name lists, 501
  1221. File errors
  1222.   handling, 452
  1223. File Manager, 803
  1224. File menu, 30
  1225.   creating, 454-455
  1226.   implementing standard, 452
  1227.   list of file names in, 35
  1228. File name
  1229.   selecting restricted set, 464
  1230.   specifying new, 453
  1231. File name buffer
  1232.   address of, 454
  1233. File operation
  1234.   cancel command, 454
  1235. File dialog window, 453
  1236. File handling programs, 454
  1237.   shell for, 462
  1238. File-Open and File-Save Dialogs, 452-465
  1239. Files
  1240.   selecting existing, 453
  1241. FillChar, 76, 610, 617
  1242. FillRect, 346
  1243. FindWindow, 756
  1244. FirstThat, 820-821
  1245. FIXED, 516
  1246. Fixed, 831
  1247. Floating menu, 270
  1248.   creating in advance, 272
  1249.   enabling accelerated, 293
  1250. Floating popup menu, 231
  1251.   assigning accelerator keys to, 289-295
  1252. Focus, 123, 466-467
  1253.   moving among controls, 445
  1254.   shifting from control to control, 584
  1255. Font
  1256.   parameters that describe current, 662
  1257.   standard proportionally spaced, 345
  1258.   using new in a display context, 345
  1259. ForEach, 819-821
  1260. Forward, 714
  1261. Frame window, 804. See also MDI
  1262. Free memory, 756
  1263. FreeLibrary, 687, 733, 735, 739, 743
  1264. FreeMem, 101, 354, 500, 687
  1265. FreeMultiSel, 609
  1266. FreeProcInstance, 692-693
  1267. fsPathName, 453
  1268. Function
  1269.   key word, 715, 732
  1270. Functions
  1271.   calling as procedures, 34, 70, 180
  1272.   calling procedures, 827
  1273.  
  1274. G
  1275.  
  1276. gcw_CbClsExtra, 478
  1277. gcw_CbWndExtra, 478
  1278. gcw_HbrBackground, 478
  1279. gcw_HCursor, 478
  1280. gcw_HIcon, 478
  1281. gcw_Style, 478
  1282. GDI (Graphics Device Interface), 163, 166, 168, 176-177, 649, 
  1283.   652, 667, 708
  1284.   and bitmaps, 298
  1285.   internal method used to display, 218
  1286. GDI colors, 626
  1287. GDI drawing, 194
  1288. GDI.EXE, 708
  1289. GetBkColor, 187
  1290. GetClassInfo, 478
  1291. GetClassLong, 478
  1292. GetClassName, 193, 199, 325, 328, 478, 818
  1293. GetClassWord, 478
  1294.   declared, 478
  1295. GetClientRect, 176, 362, 412, 418, 704
  1296. GetClipboardData, 758, 769-770
  1297. GetCursorPos, 419
  1298. GetDC, 170, 175-176, 192, 303, 307, 409, 660, 678
  1299. GetDeviceCaps, 662, 673
  1300. GetDlgItem, 436, 503
  1301.   declared, 435
  1302. GetKeyboardType, 82-83
  1303. GetKeyState, 596
  1304. GetMem, 9, 89, 101, 352, 500, 504, 686, 759, 832
  1305. GetMenu, 264
  1306. GetMenuCheckMarkDimensions, 330
  1307. GetMenuCount, 264
  1308. GetMenuState, 240, 242-243, 248, 265
  1309.   declared, 242
  1310. GetMenuString, 264
  1311. GetMessage, 551-552
  1312. GetNearestColor, 186, 188
  1313. GetPhysPageSize, 654
  1314. GetPosition, 632, 641
  1315. GetPrivateProfileInt, 627, 629
  1316.   bug with, 628
  1317.   declared, 628
  1318. GetPrivateProfileString, 627, 655
  1319.   declared, 628-629
  1320. GetProcAddress, 686-687, 726, 734-735
  1321.   declared, 733
  1322. GetProfileInt, 627
  1323.   declared, 628
  1324. GetProfileString, 627, 655, 662, 679, 686, 721, 731
  1325.   declared, 628-629
  1326. GetStockObject, 345
  1327.   declared, 181
  1328. GetStringLen, 590
  1329. GetSubMenu, 252, 258, 263-264, 294, 333, 666
  1330.   declared, 251
  1331. GetSysColor, 345, 626
  1332.   declared, 626
  1333. GetSysMetrics, 391
  1334. GetSystemMenu, 265, 270
  1335.   declared, 265
  1336. GetSystemMetrics, 82-83, 360-362
  1337. GetText, 589, 596
  1338. GetTextExtent, 345-346
  1339.   declared, 345
  1340. GetTextMetrics, 662
  1341. GetWindowClass, 193-194, 199, 325-326, 328, 375, 385, 400, 818
  1342. GetWindowsDirectory, 82-83
  1343. GetWinFlags, 82-84
  1344. Global data, 39, 513
  1345.   calling program provides, 722
  1346.   difficulties in multitasking environments, 721
  1347. Global event queue, 132
  1348. Global heap, 39, 99, 180, 513, 582, 832
  1349.   compacting the entire, 353
  1350.   enhanced mode, 353
  1351.   standard mode, 353
  1352. Global memory, 353, 752
  1353. Global memory block, 744, 750, 752-753, 773. 
  1354.   See also Memory block
  1355.   sharing, 748
  1356. Global variables, 832
  1357. GlobalAddAtom, 773-774
  1358. GlobalAlloc, 351, 750-751, 756, 773, 775, 777, 785
  1359.   declared, 353
  1360. GlobalCompact
  1361.   declared, 353
  1362. GlobalDeleteAtom, 773-774, 776-777
  1363. GlobalFindAtom, 773-774
  1364. GlobalFree, 354, 751-752, 758, 773
  1365. GlobalGetAtomName, 773-775
  1366. GlobalLock, 351, 354, 751-752, 758, 775
  1367.   declared, 351
  1368. GlobalSize, 353
  1369. GlobalUnlock, 351, 752, 758
  1370.   declared, 351
  1371. gmem_DDEShare, 354, 775
  1372. gmem_Discardable, 353-354
  1373. gmem_Fixed, 354
  1374. gmem_Moveable, 353-354
  1375. gmem_NoCompact, 354
  1376. gmem_NoDiscard, 354
  1377. gmem_Zeroinit, 354
  1378. gmem_ZeroInit, 354
  1379. GotoXY, 69, 77
  1380. Graphic
  1381.   providing feedback, 402
  1382. Graphical elements
  1383.   representing your application's, 165
  1384. Graphical User Interface. See GUI
  1385. Graphics
  1386.   adding to windows, 168
  1387.   device independent, 9
  1388.   displaying in minimized iconic window, 380
  1389. Graphics device interface. See GDI
  1390. Graphics listings, 717
  1391. Graphics programming, 217
  1392. Grayed out, 253
  1393. GrayString, 201
  1394. gray_Brush, 182
  1395. Grep, 58
  1396. GREP.COM, 26
  1397. Group bit, 468-469
  1398. Group box, 468, 586, 616. See also TGroupBox
  1399.   designing with buttons and boxes, 587
  1400.   entering text label, 468
  1401. Group controls, 469
  1402. Group window, 795
  1403. GUI (Graphical User Interface), 4-5, 7, 9, 11, 363, 466, 
  1404.   803, 837
  1405.  
  1406. H
  1407.  
  1408. HAccTable, 282
  1409. Halt, 72, 160
  1410. Handle, 140
  1411. Hard copy. See Printing
  1412. Hard drive
  1413.   scanning files on, 553
  1414. Hardware breakpoint command, 51
  1415. HBitmap, 300, 302, 320, 332-333
  1416. HBrush, 208, 320, 323-324, 346
  1417. HC.EXE, 12, 56
  1418. HCursor, 401, 420
  1419. HDC, 166, 175, 302, 650, 660
  1420. Header file, 230. See also C headers
  1421. Heap, 832. See also Global heap, Local heap
  1422.   corrupted, 574
  1423. Heap fragmentation, 8
  1424. Heap memory
  1425.   reserving, 351
  1426. Heap... constants, 65
  1427. HeapError, 65
  1428. Help menu, 35-36
  1429.   secret switch in, 36
  1430. Hewlett Packard LaserJet, 650, 678
  1431. HFont, 345
  1432. HIcon, 376
  1433. HilightMenuItem, 264
  1434. HIMEM.SYS, 24-25
  1435. HInstance, 65, 149, 712
  1436. HIWORD, 331, 346
  1437. HMenu, 248, 250-251, 255, 263-265, 271, 333, 339
  1438. hollow_Brush, 182, 402, 409
  1439. Horizontal separator line, 253
  1440. Hot key, 143, 252, 278. See also Accelerator
  1441. Hot spot, 389, 392, 411, 573
  1442.   and cursors, 388
  1443.   over program's menu bar, 768
  1444. Hot key, 232
  1445. Hot key commands, 289
  1446. Hourglass, 389, 399, 413-414, 542
  1447.   displaying, 413-414
  1448.   during printing, 662
  1449.   resetting to normal arrow, 663
  1450. HPen, 178-179
  1451. HPPCL.DRV, 650, 655
  1452. HPrevInst, 65, 160
  1453. hs_BDiagonal, 207
  1454. hs_Cross, 207
  1455. hs_DiagCross, 207
  1456. hs_FDiagonal, 207
  1457. hs_Horizontal, 207
  1458. hs_Vertical, 207
  1459. HWindow, 141, 170-172, 175
  1460.   no longer valid, 178
  1461. HWnd, 140, 170, 436
  1462. HWnd (window handle), 160
  1463.   initializing, 172
  1464. Hybrid programming language, 13
  1465.  
  1466. I
  1467.  
  1468. I beam, 399
  1469. I/O error checking, 648
  1470.   switching off automatic, 744
  1471. IBM PC extended characters, 438
  1472. Icon, 363, 439. See also Standard icons
  1473.   and mask, 365
  1474.   built-in, 366-367
  1475.   creating, 16
  1476.   displaying, 364
  1477.   displaying in group window, 373
  1478.   displaying transparent, 365
  1479.   disposing, 377
  1480.   in a resource file, 364
  1481.   loading built-in, 378
  1482.   minimizing window to, 704
  1483.   specifying in resource scripts, 378
  1484.   storing on disk, 364
  1485.   xor mask, 365
  1486. Icon bitmaps
  1487.   getting copies of, 377
  1488. Icon editor, 366, 371-372, 618
  1489. Icon file, 364
  1490. Icon formats, 365
  1491. Icon resource
  1492.   obtaining a handle to, 371
  1493. Icon's image
  1494.   composition of, 365
  1495. Iconicized window
  1496.   drawing inside, 379
  1497. idAbort, 143
  1498. idc_Arrow, 398
  1499. idCancel, 143
  1500. idc_Arrow, 399
  1501. idc_IBeam, 399
  1502. idc_UpArrow, 400
  1503. idc_Wait, 399
  1504. Identifier index, 709
  1505. idIgnore, 143
  1506. idi_Application, 378
  1507. idi_Asterisk, 378
  1508. idi_Exclamation, 378-379
  1509. idi_Hand, 378
  1510. idi_Question, 378
  1511. idNo, 143
  1512. idOk, 143
  1513. idRetry, 143
  1514. idYes, 143
  1515. id_Abort, 432
  1516. id_Cancel, 432
  1517. id_First, 136-137, 583
  1518. id_Ignore, 432
  1519. id_Internal, 137
  1520. id_No, 432
  1521. id_Ok, 432, 454, 464, 582-583, 611
  1522. id_Retry, 432
  1523. id_Yes, 432
  1524. Illegal heap operation, 574
  1525. Image
  1526.   blowing up, 307
  1527.   copying to a window, 314
  1528.   displaying bitmap, 347
  1529.   drawing with extra speed, 312
  1530. Implementation, 715. 727
  1531. Import library, 708-710, 715-716, 725-726. See also DLL
  1532. Import library unit, 729-731, 734, 738
  1533.   bypassing the need for, 727
  1534. Improper tabbing
  1535.   conflict leading to, 469
  1536. Include files (.INC), 829
  1537. Index, 841
  1538.   key word, 723
  1539. Individual strings
  1540.   identifying by sequential number, 514
  1541. Information
  1542.   prompting to enter, 445
  1543. Information sharing, 748
  1544. Inheritance, 15, 112-117
  1545.   to construct dialogs, 429
  1546. Inherited method
  1547.   overriding, 113
  1548. InitApplication, 155-156, 159
  1549. InitChild, 822
  1550. InitInstance, 282, 288, 666
  1551. InitMainWindow, 128-129, 131-132, 139, 155-156, 160, 602, 806
  1552. InitResource, 578, 599, 607, 611, 617
  1553.   alternate constructor, 602
  1554. InitWinCrt, 72, 756
  1555. Input, 65
  1556.   limiting to specific values, 450
  1557.   prompt for single-line, 446
  1558. Input box, 616
  1559.   maximum length, 602
  1560. Input buffer, 449
  1561. Input control
  1562.   initially empty, 593
  1563. Input dialog, 445-452
  1564.   displaying, 450
  1565. Input focus, 432
  1566. Insert, 87
  1567. InsertMenu, 251-254, 256, 264-265, 275, 339, 666. 
  1568.   See also AppendMenu
  1569.   declared, 252
  1570. Installation
  1571.   writing automated, 795
  1572. Instance
  1573.   creating on the heap, 106
  1574. Integrated compiler, 825
  1575. Interface, 715, 718, 722
  1576. Interfaces
  1577.   experimenting with keyboard and mouse, 467
  1578. Interrupt service routine, 744
  1579. InvalidateRect, 201, 249, 329, 361, 641, 705
  1580.   declared, 200
  1581. Invalidating windows, 201
  1582. IOResult, 84, 648, 744, 826
  1583. IsClipboardFormatAvailable, 756-757
  1584. IsDialogMessage, 549-550, 691
  1585.   declared, 552
  1586. IsIconic, 380, 385
  1587. IsWindow, 794
  1588. Item
  1589.   getting index, 503
  1590. Items
  1591.   picking one or more, 466
  1592.  
  1593. K
  1594.  
  1595. KERNEL.EXE, 708
  1596. Key combination
  1597.   programming multiple, 278
  1598. Keyboard
  1599.   and control objects, 584
  1600. Keyboard focus
  1601.   moving among groups of controls, 466
  1602. Keyboard messages
  1603.   directing to a window, 541
  1604. Keyboard support, 586
  1605.   enabling for child controls, 634
  1606.   opted to forego, 641
  1607. Keypress event, 550, 595
  1608. KeyPressed, 69
  1609. Keypresses
  1610.   responding to, 445
  1611. KillTimer, 177-178
  1612.  
  1613. L
  1614.  
  1615. Labels
  1616.   displaying inside windows, 589
  1617.   string tables, 514
  1618. Landscape mode
  1619.   printing in, 682
  1620. Language
  1621.   translate command to another, 667
  1622. Languages, 661
  1623.   translating programs to foreign, 530
  1624. Large programs
  1625.   reducing complexity in, 116
  1626. Large project
  1627.   making routines available to, 529
  1628. Laser printers, 646, 652
  1629. Late binding, 119
  1630. lbn_DblClick, 591
  1631. lbn_ErrSpace, 591
  1632. lbn_KillFocus, 591
  1633. lbn_SelChange, 591-592
  1634. lbn_SetFocus, 591
  1635. lb_AddString, 490, 492, 498, 503
  1636.   AddString vs., 603
  1637. lb_DeleteString, 433, 491, 499
  1638. lb_Err, 491, 499
  1639. lb_GetCurSel, 491, 499
  1640. lb_GetSelCount, 500
  1641. lb_GetSelItems, 500
  1642. lb_GetText, 491, 499-500
  1643. Length function, 87, 94, 205
  1644. Length byte string, 88, 94, 96, 205. See also String
  1645.   limitation in size, 88
  1646. Library
  1647.   discarding from memory, 733
  1648.   key word, 711, 713
  1649. Library declaration, 723
  1650. Library header, 723
  1651. Line
  1652.   coloring, 187
  1653.   drawing, 176
  1654.   erasing old, 219
  1655. Line number information, 829
  1656. Line removal, 403
  1657. Line number information, 833
  1658. LineTo, 176, 185, 199, 409, 672
  1659. Link buffer file, 833
  1660. Linker options, 33, 833
  1661. Linking, 833
  1662. List
  1663.   initializing new, 490
  1664.   largest possible string item, 492
  1665.   retrieving selected item, 491
  1666.   selecting more than one item, 499
  1667. List box
  1668.   deleting an entry from, 433
  1669.   options, 490
  1670.   sending strings, 490
  1671.   strings, initializing, 591
  1672. List box control, 490, 499
  1673.   finding index of selected item, 491
  1674.   interactive, 492
  1675.   selecting an item from, 498
  1676. List box control object
  1677.   creating, 591
  1678. List box's selector bar, 592
  1679. List control, 491, 501
  1680.   creating dialogs to interact with, 492
  1681. List of items
  1682.   alphabetical, 490
  1683.   processing selections made from, 591
  1684. List box message, 490
  1685. Listed items
  1686.   deleting, 491
  1687. Listings
  1688.   entering, 16
  1689. Lists, 499, 590. See also Multiple selection list
  1690.   interactive, 492-499
  1691.   multiple-selection, 608
  1692. Lists for dialog boxes
  1693.   string tables, 514
  1694. Literal string constant, 92
  1695. LoadAccelerators, 282, 288, 311
  1696.   called for new program instance, 666
  1697. LoadBitmap, 300, 302, 311, 323, 347
  1698.   declared, 302, 346
  1699. LoadCursor, 398, 400
  1700.   declared, 389-390
  1701. LoadIcon, 371, 377, 818
  1702.   calling multiple times, 377
  1703.   declared, 375-376
  1704. Loading option, 516
  1705. LoadLibrary, 679-680, 686, 733, 735-736, 738, 743
  1706.   declared, 732
  1707. LoadMenu, 149, 154, 241, 263, 294, 311, 666, 768, 809
  1708.   declared, 149-150
  1709. LOADONCALL, 516
  1710. LoadString, 518, 521, 634
  1711.   declared, 517
  1712. Local heap, 513
  1713.   allocating space, 560
  1714.   specify number of bytes to reserve, 832
  1715. Local menu, 289
  1716. Lock count, 351
  1717. Locked memory
  1718.   referring to, 751
  1719. Locked memory block, 752
  1720. Logical bitmaps. See Bitmap
  1721. Logical operators, 219
  1722. LongInt
  1723.   creating from two 16-bit values, 339
  1724.   extracting Words from, 331
  1725. LOWORD, 331, 346
  1726. LParam, 191
  1727. LParamHi, 192, 199
  1728. LParamLo, 192, 199
  1729. ltGray_Brush, 182
  1730.  
  1731. M
  1732.  
  1733. Macintosh, 5, 366
  1734.   compatibility with Windows, 367
  1735. Main block, 129
  1736. Main window
  1737.   assigning to, window as dialog, 602
  1738.   customizing program's, 134-135
  1739.   TDlgWindow used as application's, 599
  1740. MainWindow, 132, 134, 139, 155-156, 809
  1741. Make, 58-59
  1742. Make file, 58
  1743. MakeBitmaps, 345
  1744. MakeIntResource
  1745.   declared, 399
  1746. MakeLong, 339, 776
  1747. MAKELONG, 452
  1748. MakePoint. See also TPoint
  1749. MakeProcInstance, 691-693, 697
  1750.   declared, 691
  1751. MakeWindow, 539-541, 548, 562, 567, 572, 689
  1752.   MDI children, 817
  1753. Map file, 829, 833
  1754. Math coprocessor, 826
  1755. mb_AbortRetryIgnore, 142
  1756. mb_ApplModal, 142
  1757. mb_DefButton1, 142
  1758. mb_DefButton2, 142
  1759. mb_DefButton3, 142
  1760. mb_IconAsterisk, 142, 367
  1761. mb_IconExclamation, 142, 160, 367
  1762. mb_IconHand, 142, 367
  1763. mb_IconInformation, 142, 367
  1764. mb_IconQuestion, 142, 367
  1765. mb_IconStop, 142, 367
  1766. mb_Ok, 141-142
  1767. mb_OkCancel, 142
  1768. mb_RetryCancel, 142
  1769. mb_SystemModal, 142
  1770. mb_TaskModal, 142, 160
  1771. mb_YesNo, 142
  1772. mb_YesNoCancel, 142
  1773. MDI (Multiple Document Interface), 803
  1774.   application's desktop, 816
  1775.   application, smallest, 804
  1776.   Bitmap viewer, 809-816
  1777.   child window captions, 817
  1778.   child window icon inside, 818
  1779.   child window, operating, 819
  1780.   client window, 805-806
  1781.   creating a frame window, 806
  1782.   displaying an icon inside, 816
  1783.   frame window, 804-805, 816, 819
  1784.   frame windows, 821
  1785.   inserting child windows into, 817
  1786.   menu, 809
  1787.   messages, 822
  1788.   minimum application, 807
  1789.   opening document files, 817
  1790.   redisplaying all windows, 819
  1791.   searching for specific window, 820
  1792.   typical application, 809
  1793. MDI tips, 822
  1794. Mem handle
  1795.   invalid, 351
  1796. Memory
  1797.   conserving, 829
  1798.   helping Windows conserve, 707
  1799.   loss of, gradual, 739
  1800. Memory bitmaps. See Bitmap
  1801. Memory block, 351, 751, 775
  1802.   copying data to, 752
  1803.   discardable, 351, 353
  1804.   in real mode, 8
  1805.   locking, 751
  1806.   newly allocated, 353
  1807.   obtaining, 351
  1808.   owned by the clipboard, 753
  1809.   passing to the clipboard, 750
  1810.   sharing global, 771
  1811.   size of, 353
  1812.   unable to allocate and lock, 756
  1813.   unlocking before transferring, 775
  1814. Memory context, 377
  1815. Memory DC, 303-304, 306, 312-313, 318, 345, 354, 361, 377, 
  1816.   678, 705
  1817. Memory display context, 344, 673
  1818. Memory management, 8-9
  1819. Memory options, 516
  1820. MENCOLS.PAS, 239
  1821. Menu, 30-36. See also Dynamic menus
  1822.   adding bitmaps to, 339-340
  1823.   and resources, 141-150
  1824.   attaching to windows, 264
  1825.   changes to, 250
  1826.   changing at runtime, 258
  1827.   command values defined in WObjects, 807
  1828.   creating advanced, 263
  1829.   creating at runtime, 255, 263
  1830.   creating the easiest way, 141
  1831.   creating with string resources, 523
  1832.   dynamic, 249-265
  1833.   English and Danish, 530
  1834.   inserting new commands, 252
  1835.   keeping as simple as possible, 249
  1836.   obtaining a handle to, 251
  1837.   onscreen appearance out of synch, 255
  1838.   referring to individual, 250
  1839.   translating to another language, 44
  1840.   undoing modifications, 254
  1841.   updating the display, 254
  1842.   using AppendMenu to create from scratch, 275
  1843. Menu bitmaps, 344
  1844. Menu checkmarks
  1845.   customizing, 329-338
  1846. Menu command
  1847.   benefits of grayed out, 257
  1848.   checkmark symbol, 240
  1849.   creating accelerators related to, 281
  1850.   deleting, 254-255
  1851.   displaying a checkmark next to, 241
  1852.   displaying correctly, 462
  1853.   end with three-dot ellipsis, 430
  1854.   graying by position, 258
  1855.   in columnar tables, 238
  1856.   referring to specific, 250
  1857. Menu command messages
  1858.   intercepting from Windows, 152
  1859. Menu editor, 438, 447, 454, 807
  1860. Menu handle, 250
  1861. Menu item
  1862.   bitmapped, 338
  1863.   changing the character of, 264
  1864.   checked and unchecked, 333
  1865.   determining attributes, 243
  1866.   displaying with different font, 338
  1867.   grayed, 263
  1868.   grayed vs. disabled, 257
  1869.   graying, 256-258
  1870.   inserting by position, 253
  1871.   main-level, 144
  1872.   number of, 264
  1873.   reenabling, 258
  1874.   top-level, 147
  1875. Menu item string
  1876.   returning, 264
  1877. Menu name, 252
  1878.   as a command, 238
  1879.   top-level, 229
  1880. Menu resource, 250
  1881.   bound into StdWnds, 666
  1882.   creating, 143
  1883.   identifying, 154
  1884.   identifying by a string or small positive integer, 229
  1885.   individual commands in, 151
  1886.   loading, 154
  1887.   loading and assigning, 149
  1888.   loading at runtime, 233
  1889. Menu resource editor, 143
  1890. Menu resource handle, 150
  1891. Menu resource identifier, 150
  1892. Menu status
  1893.   giving visual feedback about, 259
  1894. mergeCopy, 305
  1895. mergePaint, 305
  1896. Message
  1897.   matching in queue, 551
  1898.   sending to a control, 434
  1899. Message box, 136-137, 366
  1900.   displaying icons in, 367
  1901.   with icons, 367
  1902. Message categories, 121
  1903. Message consolidation, 410
  1904. Message constants, 433
  1905. Message processing
  1906.   resuming normal, 401
  1907. Message queue, 10, 133
  1908.   investigating, 551
  1909. Message response method, 135-136, 140, 151, 154, 172, 178, 188, 
  1910.   340, 602, 606
  1911.   and subclassing, 480
  1912.   and TDialog, 428
  1913.   and the system menu, 267
  1914.   calling directly, 640
  1915.   common, 430
  1916.   declared, 189
  1917.   for displaying About Box dialog, 444
  1918.   OWL's mechanism for processing, 289
  1919.   processing specific notification method, 605
  1920. Message-handling techniques, 123
  1921. MessageBeep, 140, 451, 480, 605
  1922.   for debugging, 140
  1923. MessageBox, 141, 154, 160, 270, 294, 361, 366-367, 371, 451, 
  1924.   521, 662
  1925.   calling frequently, 370
  1926.   calling when Windows shutting down, 741
  1927.   declared, 140-141
  1928. Messages, 10, 16, 132, 135, 837
  1929.   and control object methods, 602
  1930.   DDE as a set of, 771
  1931.   dealing with, 550-552
  1932.   finding, 551
  1933.   generating for double clicks, 192
  1934.   locating an application's, 550
  1935.   passing information with, 435
  1936.   sending from DLLs to application, 744
  1937.   sending to controls, 435
  1938. Metafile, 667
  1939. Metafile picture, 749
  1940. Methods, 102
  1941. mf_Bitmap, 252-253, 339
  1942. mf_ByCommand, 241-243, 248, 255, 257, 264, 333
  1943. mf_ByPosition, 241-242, 252, 254-255, 257-258, 264, 333
  1944. mf_Checked, 241-244, 248, 253
  1945. mf_Disabled, 243, 252-253, 257-258
  1946. mf_Enabled, 243, 253, 257-258
  1947. mf_Grayed, 243, 252-253, 257-258
  1948. mf_MenuBar, 252
  1949. mf_MenuBarBreak, 243, 252-253
  1950. mf_MenuBreak, 243, 253
  1951. mf_OwnerDraw, 252-253
  1952. mf_Popup, 253, 256
  1953. mf_Separator, 243, 253
  1954. mf_String, 253
  1955. mf_Unchecked, 241-244, 248, 253
  1956. Microsoft C (MSC), 12
  1957. Microsoft Corporation, 3
  1958. Microsoft Resource Compiler. See RC
  1959. Microsoft Windows Software Development Kit. See SDK
  1960. Microsoft Word for Windows, 240, 279
  1961. Microsoft Resource Compiler, 284
  1962. MIDI, 804
  1963. Minimize symbol. See Blank icon
  1964. Minimized application
  1965.   sending wm_Paint messages to, 379
  1966. Modal dialog, 427-428, 431, 537, 539, 578
  1967.   and use of transfer mechanism, 611
  1968.   as resources, 538
  1969.   bringing up, standard method, 447
  1970.   transferring data to and from, 611
  1971. Mode selection
  1972.   general philosophy towards, 403
  1973. Modeless abort dialog, 646. See also Abort dialog
  1974. Modeless dialog, 428, 537-550, 552, 561, 566, 663, 689-690
  1975.   appearing immediately, 541
  1976.   as resources, 538
  1977.   closing, 542
  1978.   creating, 539
  1979.   destroying, 542
  1980.   disposing, 541
  1981.   example, 538
  1982.   managing, 549
  1983.   similar to child or popup window, 562
  1984.   style attributes, 538
  1985.   typical, 539
  1986. Modeless dialog message, 549
  1987. Modeless directory, 553
  1988. Modeless status dialog, 542-543, 548, 561
  1989. Modified file
  1990.   warning, 465
  1991. ModifyMenu, 264-265, 339
  1992.   declared, 264
  1993. Monochrome screens, 365
  1994. Mouse
  1995.   capturing, 191-192
  1996.   detecting inside rectangle, 411, 641
  1997.   determining if present, 83, 391
  1998.   drawing with, 194-201
  1999. Mouse button, 188
  2000. Mouse button messages, 573
  2001. Mouse clicks
  2002.   responding to, 136-141, 192
  2003.   sensing, 641
  2004. Mouse clicks and movements
  2005.   responding to, 199
  2006. Mouse coordinates, 409
  2007. Mouse cursor
  2008.   hot spot location, 275
  2009. Mouse input
  2010.   capturing, 391
  2011.   capturing all future, 198
  2012. Mouse location
  2013.   casting to a TPoint record, 412
  2014. Mouse message processing
  2015.   returning to normal, 391, 401
  2016. Mouse message response methods, 194
  2017. Mouse messages, 188-189
  2018.   capturing, 400
  2019.   intercepting, 188
  2020. Mouse movements
  2021.   complete control over, 191
  2022.   consolidated information for fast, 200
  2023.   recognizing, 189
  2024. Mouse operation, 401
  2025. Mouse pointer, 390, 400, 402
  2026.   display count, 360
  2027.   hiding, 360
  2028.   synonym for cursor, 387
  2029.   turning off, 355
  2030. Mouse pointer location, 188, 190, 200
  2031. Mouse button click
  2032.   locating cursor following, 419
  2033. Mouse capture methods, 408
  2034. MOUSE.COM, 26-27
  2035. Move, 752
  2036. MOVEABLE, 516
  2037. Moveable, 831
  2038. MoveTo, 176-177, 185, 192, 409, 672
  2039. Msg, 192
  2040. Multilevel menus, 231, 237
  2041.   designing, 232-234
  2042.   using, 234
  2043. Multiline Edit, 481
  2044. Multiline edit control, 480-481, 482, 593
  2045.   creating new, 594
  2046.   shifting focus from, 596
  2047. Multiple applications
  2048.   sharing allocated memory by, 354
  2049. Multiple dialog instances, 429
  2050. Multiple document interface, 803-823. See also MDI
  2051. Multiple Instances
  2052.   preventing, 159-160
  2053. Multiple units
  2054.   startup code in, 738
  2055. Multiple selection lists, 499-500
  2056. Multitasking, 6, 8-9, 171, 212
  2057. Multitasking environments
  2058.   difficulties with shared global data, 721
  2059. Multitasking operating system, 747
  2060.  
  2061. N
  2062.  
  2063. Name
  2064.   key word, 724
  2065. Name option, 728
  2066. Nested menus. See Multilevel menus
  2067. Nested multilevel menu, 253
  2068. Network
  2069.   printer sharing, 656
  2070. New, 9, 132, 832
  2071. NewFrame, 653-654, 662
  2072. Next, 596
  2073. NextBand, 654
  2074. NextToken, 697
  2075. nf_First, 137, 606
  2076. nf_Internal, 137
  2077. No button, 463
  2078. Nonpreemptive scheduling, 10
  2079. Nonvirtual key
  2080.   serving as an accelerator, 280
  2081. Normal
  2082.   child window type, 564
  2083. Normal child window, 563
  2084. NotePad, 643
  2085. Notification messages, 573, 583, 586, 592, 603, 605-606
  2086.   generated for list box, 591
  2087.   intercepting from TListBox control, 590
  2088. notSrcCopy, 305
  2089. notSrcErase, 305
  2090. NULL, 71
  2091. Null string, 95. See also ASCIIZ string
  2092. Null terminator byte, 101
  2093. Null-terminated string, 74, 88, 252, 827
  2094.   and lists, 490
  2095. Null-terminated string assignment, 71. See also String
  2096. null_Brush, 182
  2097. null_Pen, 182
  2098.  
  2099. O
  2100.  
  2101. Object
  2102.   and methods, 105
  2103.   constructing and destroying, 117
  2104.   creating new, 110, 117
  2105.   creating via New on the heap, 109
  2106.   data fields, 102
  2107.   defined as variables, 104
  2108.   defining an instance, 129
  2109.   hiding information inside, 116
  2110.   key word, 113
  2111.   methods, declared inside, 102
  2112.   storing in separate units, 546
  2113. Object data fields
  2114.   making direct assignments to, 105
  2115. Object hierarchy, 835
  2116. Object instance, 104, 106, 108
  2117.   address of, 107
  2118.   addressing with pointers, 106-107
  2119. Object Oriented Programming. See OOP
  2120. Object type declaration, 102
  2121. Object Vision, 14
  2122. Object Windows Library. See OWL
  2123. Object-code file (.OBJ), 829, 831
  2124. Object-oriented techniques
  2125.   responding to control events, 599
  2126. OEM (Original Equipment Manufacturer, 83
  2127. OEM character set, 749
  2128. oem_Fixed_Font, 182
  2129. Offline printer
  2130.   detecting, 648
  2131. Ok button, 427-428, 432, 446, 449, 454, 479, 482, 489, 499, 
  2132.   504, 579, 581, 590, 611
  2133.   wide, 582
  2134. Ok button control, 583
  2135. Ok method, 428, 499
  2136. Ongoing process
  2137.   displaying updates, 542
  2138. Online help, 35
  2139. OOP (Object Oriented Programming), 4, 13, 118
  2140.   fundamentals, 101-120
  2141.   inheritance, 113
  2142.   learning about, 16
  2143.   mix with non-OOP code, 318
  2144. OpenClipboard, 489, 749-750, 752, 757
  2145. Operating mode
  2146.   confirming, 40
  2147. Operating system
  2148.   single-tasking, 10
  2149. Options. See also Compiler options, Linker options
  2150.   list, 41
  2151. Options menu, 33-34
  2152. Original Equipment Manufacturer. See OEM
  2153. OS/2, 5-6, 10
  2154. OS/2 Presentation Manager, 7, 11
  2155. Out-of-memory error, 689
  2156.   handling, 540
  2157. Outport port. See also Environment
  2158. Outport ports
  2159.   examples, 650
  2160. Output, 65
  2161. Output directory path name, 34
  2162. Output port, 655
  2163. Output port name, 680
  2164. OWL (Object Windows Library), 3, 14-16, 57, 64, 101, 106, 118, 
  2165.   122, 835
  2166.   and MDI applications, 803
  2167.   control objects, 578
  2168.   key features, 15
  2169.   transfer mechanism, 607
  2170. OWL applications
  2171.   ending correctly, 154
  2172. OWL program, 129
  2173.   smallest possible, 128
  2174.  
  2175. P
  2176.  
  2177. Packed 
  2178.   key word, 87
  2179. Page
  2180.   ejects current, 653
  2181. Paint method, 164-166, 168, 185, 211, 217
  2182.   overriding, 166
  2183. Paintbrush, 762
  2184. PaintDC, 176, 185
  2185. PApplication, 130. See also TApplication
  2186. Parallel port
  2187.   sending output to, 653
  2188. ParamCount, 65
  2189. ParamStr, 65
  2190. PARC (Xerox Palo Alto Research Center), 4, 13
  2191. Parent window, 140
  2192.   address of, 431
  2193.   keeping track of children, 584
  2194. Parent window's address, 611
  2195. ParentNotify method, 573
  2196. Parsing strings, 660-661
  2197. PASCAL
  2198.   key word, 729
  2199. Pascal
  2200.   learning, 66
  2201. Pascal calling convention, 729
  2202. Password edit control, 480-481, 484, 489
  2203.   discovering text entered into, 483
  2204. Password styles, 481
  2205. Paste command, 747, 761-762, 768
  2206. Paste Link command, 794
  2207. PatBlt, 313-314
  2208.   declared, 313
  2209. patCopy, 305
  2210. Path
  2211.   resetting, 26
  2212. PatInvert, 305
  2213. Pattern
  2214.   hatched, 206
  2215. PChar, 74-75, 90-93, 95, 129, 150
  2216.   and MakeIntResource, 399
  2217.   passing string constants to, 311
  2218. PChar constant address values, 94
  2219. PChar pointer, 94, 96, 98, 99, 112, 132, 141, 156, 325, 339, 
  2220.   367, 447, 623
  2221.   creating array to address string, 522
  2222.   typed constant array of, 502
  2223. PeekMessage, 417-418, 549-552
  2224.   declared, 550-551
  2225.   use, 551
  2226. Pen, 176
  2227.   creating, 180
  2228.   drawing with, 181-186
  2229.   predefined, 181
  2230.   selecting, 188
  2231. Pen color
  2232.   selecting, 179
  2233. Pen styles, 178-186
  2234. Performance losses, 180
  2235. Permanent, 831
  2236. Pick lists, 490
  2237. Picture element. See Pixel
  2238. PInputDialog, 446. See also TInputDialog
  2239. Pixel (picture element), 140, 164
  2240.   inverting, 403
  2241.   width, 179
  2242. Plotters, 652, 667, 673, 678
  2243. PM (Presentation Manager), 5. See also OS/2 Presentation Manager
  2244. PMDIClient, 807
  2245. PMDIWindow, 806. See also TMDIWindow
  2246. PMultiSelRec, 608-609. See also TMultiSelRec
  2247. pm_NoRemove, 418, 551
  2248. pm_NoYield, 418, 551
  2249. pm_Remove, 418, 551
  2250. Pointer
  2251.   dereferencing, 91, 107
  2252.   disposed, 100
  2253.   in Pascal, 89
  2254.   using to address objects, 118
  2255. Pointers to objects, 574
  2256. Polygon, 649
  2257. Popup menu, 253, 333, 339, 666, 805, 807
  2258.   number of subcommands in, 242
  2259. Popup menu handle, 250
  2260. Popup menus, 229
  2261.   removing from a main menu, 256
  2262.   selecting commands from, 277
  2263. Popup window, 573
  2264.   closing, detecting, 575
  2265.   creating, without a parent, 566
  2266. Popup window with a parent, 563
  2267.   creating, 574
  2268. Popup window without a parent, 563
  2269. Popup windows, 538, 574. See Child and popup windows
  2270. Pos, 87
  2271. Position
  2272.   scroll bar, 641
  2273.   scroll bar, forcing, 640
  2274. Positions
  2275.   current scroll bar, 705
  2276. PostAppMessage, 551
  2277. PostMessage, 744, 777-778, 785-786
  2278. PostQuitMessage, 155
  2279. posWindowMenu, 816
  2280. Predefined cursor identifiers, 389
  2281. Preemptive scheduling, 10
  2282. PRELOAD, 516
  2283. Preload, 831
  2284. Presentation Manager. See PM
  2285. Previous, 596
  2286. Primary file, 33
  2287. Print
  2288.   text, commands required, 652
  2289. Print command
  2290.   adding to File menu, 666
  2291. Print job
  2292.   beginning new, 662
  2293.   cancelling the current, 689
  2294.   ending current, 660, 663
  2295.   Escape to begin new, 653
  2296.   interrupting, 687
  2297.   queue, 656
  2298. Print jobs
  2299.   unit for canceling, 693
  2300. Print Manager, 651, 653, 656, 667, 690-691
  2301.   out-of-disk error fix, 692
  2302. Printer
  2303.   control codes, sending, 647
  2304.   determining if can print bitmaps, 673
  2305. Printer device context, 649-650, 656, 662-663, 672-673, 678, 705
  2306. Printer device driver, 649, 650, 654
  2307. Printer errors, 646
  2308. Printer features
  2309.   selecting, 678, 681
  2310.   selecting custom, 660
  2311. Printer file variable, 647
  2312. Printer performance
  2313.   improving, 667
  2314. Printer settings
  2315.   default, 680
  2316. Printer setup dialog, 678-679, 681, 686-687
  2317.   example, 682
  2318. Printer's device context, 652, 673, 690, 692
  2319. Printer's device context handle, 653
  2320. Printers
  2321.   determining type attached to computer, 654
  2322.   that do not support bitmap images, 673
  2323. Printing, 645, 652
  2324.   bitmap, 673-674
  2325.   cancelling in progress, 646
  2326.   commands, 651
  2327.   determining whether interrupted, 689
  2328.   global values required during, 662
  2329.   graphics, 667-673
  2330.   in Windows, 85
  2331.   interrupting, 689, 692
  2332.   interrupting in progress, 663
  2333.   preventing other applications from becoming active, 705
  2334.   running applications during, 688
  2335.   speeding, 656
  2336.   text, 645-647, 662, 697
  2337. Printing area
  2338.   determining horizontal and vertical size, 662
  2339. Printing devices
  2340.   differences, 646
  2341. Printing errors, 663
  2342. Printing settings
  2343.   parsing, 654-656
  2344. Printing text and graphics
  2345.   calling GDI to, 650
  2346. Printing text files, 85
  2347. Private declaration, 120
  2348. Private identifier, 120
  2349. Private profile, 627. See also Profile
  2350. Private section
  2351.   inserting data fields in, 121
  2352. PRN, 647
  2353. Procedure
  2354.   key word, 715, 732
  2355. Procedure and function variables, 734
  2356. Procedure instance address. See Thunk
  2357. Process
  2358.   executing long, 551
  2359. Processor time
  2360.   share of, 417
  2361. Profile, 627
  2362.   storing items, 628
  2363. Profile settings
  2364.   bracketed divider, 629
  2365.   storing in SYSCOLOR.INI, 631
  2366. Profile string, 662, 655, 731
  2367. Program
  2368.   compiling, 34
  2369.   compiling and linking, 33
  2370.   debugging with TDW, 41, 55
  2371.   exiting immediately, 160
  2372.   initializing multiple copies of, 666
  2373.   key word, 711
  2374.   memory efficiency, improving, 514
  2375.   preventing from halting, 86
  2376.   preventing premature ending, 452
  2377.   previous instance, 160
  2378.   running in background, 417
  2379.   starting multiple copies of, 155
  2380.   translating to foreign language, 530
  2381.   using multiple DLLs with, 726
  2382. Program Index, 839
  2383. Program instance, 740
  2384.   multiple, 155
  2385. Program Manager, 23, 28, 363, 371, 563, 643, 803
  2386.   establishing a DDE conversation, 795
  2387.   icon in program .EXE file, 372
  2388. Program Manager group window, 373
  2389. Program module
  2390.   importing DLL routines into, 727
  2391. Program segment prefix (PSP)
  2392.   in DLLs, 744
  2393. Program output
  2394.   saving in disk files, 655
  2395. Programming with DDE, 771
  2396. Projects
  2397.   multimodule, 33
  2398.   rebuilding an entire, 33
  2399. Prompt boxes
  2400.   attitude in, 463
  2401. Protect mode, 6, 51
  2402. Prototypes, 729
  2403.   for DLL routine, 726
  2404. PSP. See Program segment prefix
  2405. PStatic, 623
  2406. PStrCollection, 607
  2407. ps_Dash, 179
  2408. ps_DashDot, 179
  2409. ps_DashDotDash, 179
  2410. ps_Dot, 179
  2411. ps_InsideFrame, 179
  2412. ps_Null, 179
  2413. ps_Solid, 179
  2414. PtInRect, 412, 641
  2415.   declared, 411
  2416. Public declaration, 120
  2417. Public symbols, 829, 833
  2418. Pulldown menu, 133
  2419.   responding to commands, 152
  2420. Pulldown menus, 141, 144, 151, 169, 229, 231
  2421. Pushbutton, 579. See also Default pushbutton
  2422. PWindow. See also TWindow, 132, 155
  2423. PWindowsObject, 429, 572
  2424.   recasting to descendant's type, 821
  2425.  
  2426. Q
  2427.  
  2428. Qualifiers, 724
  2429. QueryEscSupport, 654
  2430.  
  2431. R
  2432.  
  2433. r2_Black, 218, 409
  2434. r2_CopyPen, 218
  2435. r2_MaskNotPen, 218
  2436. r2_MaskPen, 218
  2437. r2_MaskPenNot, 218
  2438. r2_MergeNotPen, 218
  2439. r2_MergePen, 218
  2440. r2_MergePenNot, 218
  2441. r2_Nop, 218
  2442. r2_Not, 218, 403, 409
  2443. r2_NotCopyPen, 218
  2444. r2_NotMaskPen, 218
  2445. r2_NotMergePen, 218
  2446. r2_NotXorPen, 218
  2447. r2_White, 218
  2448. r2_XorPen, 218-219
  2449. Radio button, 466-480, 616-617
  2450.   initializing, 470
  2451.   responding to selections, 587
  2452.   retrieving, 470
  2453.   retrieving values, 479
  2454.   setting tabstop for selected, 477
  2455.   storing in 16-bit Pascal sets, 470
  2456.   style, obtaining current, 478
  2457.   tabbing to group, 477
  2458. Radio button group
  2459.   tabbing to, 469
  2460. Radio button resource
  2461.   creating, 472
  2462. RAM
  2463.   conserving, 223
  2464.   dealing with shortage of, 540
  2465.   freeing for other uses, 233
  2466.   shortage of, 255
  2467. RAM drive, 24-26
  2468. RAM requirements
  2469.   reducing program's total, 732
  2470. RAMDRIVE.SYS, 24-25
  2471. Random, 177, 187
  2472. Range selector, 136, 583, 606
  2473.   hexadecimal values, 136-137
  2474. Raster devices
  2475.   requesting information about, 673
  2476. Raster operation. See ROP
  2477. Raster operation codes, 313
  2478. Raster printers, 667. See also Printing
  2479. RasterCaps, 673
  2480. RC (Microsoft Resource Compiler), 145, 227, 832
  2481. RC.EXE, 12, 43, 56, 145, 227
  2482. rc_BitBlt, 673
  2483. Read, 65, 73
  2484. ReadBuf, 73, 75
  2485.   declared, 76
  2486. ReadKey, 73, 76
  2487. Readln, 65, 73, 75, 86
  2488. README.TXT, 16
  2489. Real mode, 8, 25, 38, 40, 212, 351, 827
  2490. Rectangle, 168, 170, 313, 402, 409, 672
  2491.   basic steps required to paint, 207
  2492.   creating shadowed effect, 211
  2493.   displaying, 168
  2494.   drawing or printing, 645
  2495. Rectangle coordinates, 176
  2496. Recursive procedure, 560
  2497. Registers
  2498.   inspecting, 52
  2499. Regular expressions, 31, 59
  2500. ReleaseCapture, 191-192, 199, 391, 401, 409
  2501. ReleaseDC, 170, 192
  2502. RemoveMenu, 256
  2503. Requirements
  2504.   hardware and software, 21-22
  2505. Reset, 84, 86, 352
  2506. Resident
  2507.   key word, 725
  2508. Resident option, 728
  2509. Resource, 143
  2510.   attaching to applications, 146
  2511.   copying to another .RES file, 225
  2512.   creating at runtime, 228
  2513.   creating directly, 227
  2514.   defined, 223
  2515.   designing your program's, 44
  2516.   four ways to create, 225
  2517.   larger than 64K, 146, 832
  2518.   loading when already in memory, 294
  2519.   preloading, 149
  2520.   preloading critical, 233
  2521.   programming with, 224
  2522.   saving as scripts, 226
  2523.   storing in multiple files, 146
  2524.   storing in separate .RES files, 225
  2525. Resource Attributes, 144, 300, 372, 431
  2526. Resource attributes
  2527.   and accelerator table, 281
  2528. Resource Attributes command, 233
  2529. Resource Attributes dialog, 238-239
  2530. Resource directive {$R}, 146, 225
  2531. Resource file (.RES), 225, 829, 832
  2532.   and icons, 364
  2533.   editing small, 46
  2534.   maintaining separate, 225
  2535. Resource ID constants, 147
  2536. Resource name
  2537.   as pseudo-32-bit pointer, 400
  2538. Resource script, 12, 226
  2539.   and bitmaps, 300
  2540.   creating new from scratch, 145
  2541.   specifying icons in, 378
  2542. Resource types, 43
  2543. Result, 191
  2544. ResultHi, 191
  2545. Rewrite, 84, 86, 647
  2546. RGB, 179-180, 186-187, 206, 641
  2547. RLE (run length encoding), 299
  2548. ROM BIOS, 10
  2549. ROP, 306
  2550. ROP (raster operation), 218
  2551. Routine
  2552.   searching a DLL for specific, 708
  2553. Rubberband line, 623, 641
  2554. Rubberband operation
  2555.   preventing serious errors, 412
  2556. Rubberbanding, 402-403, 410
  2557.   implementing, 409
  2558. Run menu, 32
  2559. Run length encoding. See RLE
  2560. Runtime error, 32, 86, 828-829
  2561.   preventing in DLLs, 744
  2562. Runtime library, 33, 63
  2563.  
  2564. S
  2565.  
  2566. Sample programs
  2567.   running, 28
  2568.   running from Pascal tutorial, 66
  2569.   trouble compiling and running, 30
  2570. Save command
  2571.   when to enable, 465
  2572. Save As... command
  2573.   enabling, 465
  2574. Scan codes
  2575.   translating to virtual key codes, 278
  2576. Screen coordinates, 271
  2577. Screen element
  2578.   obtaining color value for, 626
  2579. ScreenSize, 69-70
  2580. Scroll bar
  2581.   creating custom, 631
  2582.   range of, low and high, 609
  2583. Scroll bar control, 69, 77, 481, 593, 596, 598, 641-642, 698, 
  2584.   818. See also SetRange
  2585.   custom, 623
  2586.   enabling, 703
  2587.   essential task needed by, 632
  2588.   positioning, 598
  2589.   ranges, maximum, 703
  2590.   vertical, 70, 594
  2591. Scroll bar control object. See also TScrollBar
  2592. Scroll bar controls, 640
  2593. Scroller, 818. See also TScroller
  2594. Scrolling
  2595.   limiting to size of information, 704
  2596. ScrollTo, 77, 704
  2597. sc_Close, 267
  2598. sc_Maximize, 267
  2599. sc_Minimize, 267
  2600. SDK (Microsoft Windows Software Development Kit), 12, 14, 43, 
  2601.   47, 55, 399, 428, 837
  2602. SDK MAKEPOINT macro, 413
  2603. sd_FileOpen, 453
  2604. sd_FileSave, 453, 465
  2605. Search menu, 31-32
  2606. Seek, 352
  2607. Segment address, 829
  2608. Segment information, 833
  2609. Segment register DS, 744
  2610. Segment register SS, 744
  2611. Segment registers, 712
  2612. Selected file name
  2613.   buffer for, 453
  2614. Selected item
  2615.   allocating memory for holding, 504
  2616.   retrieving index values of, 500
  2617.   returning the number of, 500
  2618. Selection
  2619.   deleting current, 499
  2620.   making quick, 466
  2621. SelectObject, 179-180, 185, 207, 311, 313, 318, 402
  2622.   and bitmaps, 303
  2623.   and brushes, 324
  2624. Self, 107-108
  2625.   common use for in OWL, 108
  2626.   key word, 431
  2627. SendDlgItemMessage, 435-437, 477, 479, 481, 498-500, 511, 
  2628.   583, 603
  2629.   adding new strings to list, 491
  2630.   alternative to, 503
  2631.   declared, 434
  2632.   passing address of array to, 482
  2633.   passing string addresses, 503
  2634. SendDlgItemMsg, 451-452, 498, 549, 583
  2635.   declared, 436
  2636.   TDialog function, 436
  2637. SendMessage, 437, 478, 503, 776-777, 785, 793
  2638.   declared, 436
  2639. Serial communications interface, 744
  2640. Server, 772, 775, 778-779, 785, 795
  2641.   asking for information, 777
  2642.   minimum message types, 785
  2643.   starting a conversation with, 776
  2644. SetAbortProc, 654, 689, 691-692
  2645. SetBkColor, 345
  2646. SetCapture, 191-192, 198, 391, 401
  2647. SetClassWord, 329
  2648. SetClipboardData, 752-753
  2649.   declared, 752
  2650. SetCursor, 391, 401, 413-414, 417, 662-663
  2651.   declared, 390
  2652. SetCursorPos, 419-420
  2653. SetFocus, 541, 572, 688, 705, 821
  2654. SetMenu, 264
  2655. SetMenuItemBitmaps, 333-334
  2656.   declared, 333
  2657. SetPosition, 640
  2658. SetRange, 632, 704
  2659. SetROP2, 218-219, 403
  2660.   declared, 218
  2661. SetSysColors, 627
  2662.   declared, 627
  2663. SetText, 589
  2664. SetTextColor, 206, 345, 626
  2665. SetTimer, 172, 178
  2666. SetupWindow, 171-172, 318, 360, 479, 490-491, 579, 586, 632
  2667.   initializing dialog controls, 498
  2668.   loading the strings, 634
  2669.   opposite, 178
  2670.   preparing initial control values, 430
  2671. SetWindowText, 423, 464-465, 565, 592
  2672.   declared, 464
  2673. Shift key
  2674.   determining if down, 596
  2675. Short Circuit Boolean (/$B-), 41
  2676. Shortcut keys, 277
  2677. Show, 541, 820
  2678. ShowCursor, 360-362
  2679.   declared, 360
  2680. Shutdown chain
  2681.   linking exit procedure into, 738
  2682. Sibling relationship, 623
  2683. Simple box, 501
  2684. Single stepping, 52
  2685. Single line edit controls, 592
  2686. sizeIconic, 704
  2687. Smalltalk, 4, 13, 710
  2688. SMARTDRV.SYS, 24
  2689. sm_CXScreen, 360
  2690. sm_CYScreen, 360
  2691. Sociable programs, 747
  2692. Solid brush. See also Brush, 325
  2693. Source code directives, 41
  2694. Speaker
  2695.   beep, 605
  2696. Special effects, 326, 365
  2697. Spooler. See Print Manager
  2698. Spooling, 667
  2699. Sprites, 366
  2700. sp_AppAbort, 651
  2701. sp_Error, 651
  2702. sp_NotReported, 651, 654
  2703. sp_OutOfDisk, 651, 690
  2704. sp_OutOfMemory, 651
  2705. sp_UserAbort, 651
  2706. srcAnd, 305
  2707. srcCopy, 305-306, 311
  2708. srcErase, 305
  2709. srcInvert, 305
  2710. srcPaint, 305
  2711. Stack, 513, 744
  2712. Stack checking
  2713.   disabling for DLL exit procedure, 742
  2714.   turning off, 737
  2715. Stack overflow error, 116
  2716. Stack segment
  2717.   DLL use of, 711
  2718. Stack space
  2719.   increasing allocated, 560
  2720.   specify number of bytes to reserve, 832
  2721. Stack overflow instructions, 737
  2722. Standard control
  2723.   hooking custom code into, 437
  2724. Standard dialogs, 445
  2725. Standard icons, 366
  2726. Standard mode, 8, 22, 25, 351, 827
  2727. Standard output, 647
  2728. Standard Pascal, 86
  2729. StartDoc, 653-654, 662, 689, 692, 697
  2730. Startup code
  2731.   in DLL's main block, 714
  2732. Static control's text
  2733.   changing, 589
  2734. Static controls, 425
  2735. Static importing, 726-731. See also DLL
  2736. Static method, 119
  2737. Static text control, 490
  2738. Static text label, 481
  2739. Status dialog, 560
  2740.   designing, 542
  2741.   using, 553-562
  2742. Status line, 36
  2743. Status unit, 547, 553
  2744. Status unit's modeless dialog, 543
  2745. StdDlgs (standard dialogs) unit, 445, 446, 452-453
  2746.   binary resources required, 446
  2747. STDDLGS.PAS, 445, 451
  2748. STDDLGS.RES, 446, 452
  2749. StdWnds, 663, 667
  2750. STDWNDS.PAS, 596
  2751. Stock cursor, 400
  2752.   loading, 398
  2753. Stock objects, 181
  2754. Stock resources
  2755.   names of, 399
  2756. StrCat, 97
  2757. StrComp, 98
  2758. StrCopy, 71, 95-96
  2759. StrDispose, 99-101, 112, 115-116, 523, 634, 661, 720
  2760. StrECopy, 96
  2761. StrEnd, 95
  2762. StretchBlt, 301, 306-307, 311-312, 314, 318-319, 347, 362, 
  2763.   378, 673
  2764.   declared, 306
  2765. StrFill, 720, 722
  2766. StrIComp, 98
  2767. String, 71, 74, 88, 99, 205, 720
  2768.   embedding a carriage return, 515
  2769.   inserting embedded control codes, 515
  2770.   loading in groups of 16, 514
  2771.   octal codes, 515-516
  2772.   parsing, 720
  2773.   storing lists of in memory, 607
  2774.   storing space for holding, 518
  2775. String constants, 202
  2776. String copies
  2777.   disposing, 523
  2778. String data type, 86, 88
  2779. String editor, 515
  2780. String expressions, 92
  2781. String key word, 87
  2782. String table
  2783.   combining multiple into single, 514
  2784.   common use, 517
  2785.   created as a script, 516
  2786.   creating, 515
  2787.   default settings, 516
  2788.   maximum length of each string, 514
  2789.   units and multiple, 523
  2790. String table resource, 514, 529, 623, 667
  2791.   addressing, 522
  2792.   error string in, 521
  2793.   loading text from, 634
  2794. String variables, 202
  2795. String components
  2796.   use NextToken to return pointers, 661
  2797. Strings unit, 94, 101
  2798. StrLCat, 97
  2799. StrLComp, 98
  2800. StrLCopy, 96
  2801. StrLen, 94-95, 100, 205, 759
  2802. StrLIComp, 98
  2803. StrNCopy, 720
  2804. StrNew, 99-101, 115-116, 634, 661
  2805. StrPas, 98-99
  2806. StrPCopy, 96-97, 205
  2807. StrTok, 720
  2808. strtok, 660
  2809. StrTok, 721
  2810. Stub, 40
  2811. Style bits, 565
  2812. Styles
  2813.   disabling, 194
  2814.   enabling and combining, 194
  2815. Subclassing, 13, 15, 437, 480, 590, 603
  2816.   avoiding need for, 437
  2817. Subroutines
  2818.   exporting, 723
  2819. SVGA (super VGA), 47
  2820. Swap file
  2821.   setting up permanent, 23
  2822. SWAPFILE.EXE, 23
  2823. sw_Hide, 540
  2824. sw_Show, 540
  2825. sw_ShowMaximized, 540
  2826. sw_ShowMinimized, 540
  2827. sw_ShowNormal, 540, 820
  2828. Symbolic Link (SYLK), 749
  2829. Symbols
  2830.   reducing number stored in memory, 726
  2831. SysColor
  2832.   using, 641-643
  2833. SYSCOLOR.INI, 641-643
  2834.   sample of, 629
  2835. SYSEDIT.EXE (System Configuration editor), 45
  2836. System, 58, 65, 85, 149, 160, 712, 737-739, 741
  2837. System color, 640
  2838.   changing, 642
  2839. System commands
  2840.   intercepting, 267
  2841. System menu, 130, 169, 177, 266
  2842.   adding, 574
  2843.   commands in, 266
  2844.   customizing, 265
  2845.   getting a handle to, 265
  2846.   removing a command, 270
  2847. System menu commands
  2848.   accelerator keys associated with, 283
  2849. System menu's icon
  2850.   double clicking, 567
  2851. system_Fixed_Font, 182
  2852. system_Font, 182
  2853.  
  2854. T
  2855.  
  2856. Tab control code, 281
  2857. TabbedTextOut, 201
  2858. Tabbing
  2859.   among button groups, 466
  2860. Tabbing order, 468
  2861.   shifting, 469
  2862. Table
  2863.   Brush Patterns, 207
  2864.   CheckMenuItem Check Options, 241
  2865.   Child window styles, 564
  2866.   Clipboard's data formats, 749
  2867.   Escape error codes, 651
  2868.   ExtDeviceMode values for the Mode parameter, 681
  2869.   Flag constant for the GlobalAlloc, 354
  2870.   Flag Values for AppendMenu and InsertMenu, 253
  2871.   GetMenuState Return Values, 243
  2872.   Icon formats, 364
  2873.   Message Range Selectors, 137
  2874.   MessageBox Return Values, 143
  2875.   Mouse Messages, 189
  2876.   PenStyle Constants, 179
  2877.   Raster operation codes for Bitblt, 305
  2878.   SetROP2 DrawMode Values, 218
  2879.   Stock Object Constants for GetStockObject, 182
  2880.   TextType Option Values for MessageBox, 142
  2881.   TWindowsObject.Show parameters, 540
  2882.   Values to pass to GetClassWord, 478
  2883.   Window Styles, 195
  2884. Tag Image File Format (TIFF), 749
  2885. TApplication, 128-130, 132, 139, 155-156, 158-159, 170, 282, 
  2886.   431, 623, 628, 835
  2887. TApplication instance, 129
  2888. Tasks
  2889.   giving a chance to run, 417
  2890.   time, giving, 551
  2891. TAtom, 772-774
  2892. TBufStream, 835
  2893. TButton, 433, 582, 602-603, 835
  2894.   participation in transfers, 607
  2895. TButton controls, 585
  2896. TButton object, 579
  2897. TCheckBox, 433, 835
  2898.   descendant of, 588
  2899.   represented by Word values, 607
  2900.   values as Words, 607
  2901. TCheckBox object, 584-586
  2902. TCollection, 123, 607, 835
  2903. TColorRef, 179, 186, 623, 626-627, 629, 641
  2904. TColorScrollBar, 631
  2905. TComboBox, 578, 835
  2906.   descendant of TListBox, 597
  2907.   values in a record, 607
  2908. TComboBox object, 597
  2909. TComboTransferRec, 607
  2910. TControl, 433, 437, 566, 578, 602-603, 607, 835
  2911.   client window, 806
  2912. TDCONFIG.TDW, 48
  2913. TDeviceMode, 686-687
  2914. TDevMode, 650, 680, 682, 686-687
  2915. TDialog, 15, 428-430, 454, 542, 561, 578, 599, 603, 688, 835
  2916.   using TDlgWindow in place of, 562
  2917. TDialog descendant objects
  2918.   TPW implementation, 446
  2919. TDialog instance
  2920.   addressing on global heap, 444
  2921.   declared as local variable, 441
  2922.   disposing of, 445
  2923. TDlgWindow, 599, 602-603, 688, 835
  2924.   initializing controls, 599
  2925.   modeless dialogs, 561
  2926.   using as main window, 602
  2927. TDMIWindow, 819
  2928. TDosStream, 835
  2929. TDstrip, 59
  2930. TDump, 60, 227
  2931. TDUMP, 710
  2932. TDW (Turbo Debugger for Windows), 8, 32, 41, 46-48, 51-53, 159, 
  2933.   169, 270
  2934.   command-line options, 49
  2935.   commands not supported, 50
  2936.   configuring for dual monitors, 48
  2937.   windows messages, 51
  2938. TDW.EXE, 48-49
  2939. TDWinst installation utility, 48
  2940. Tear off menus, 270. See Floating popup menus
  2941. TEdit, 596, 602, 609, 667, 835
  2942.   as array of Char, 608
  2943.   default style, multiline edit control, 594
  2944. TEdit control, 593, 595
  2945. TEdit object, 592, 596
  2946. TEditWindow, 596, 663, 667
  2947. TEMC.EXE, 56
  2948. TEmsStream, 836
  2949. Text, 86, 647
  2950.   clipboard, checking for, 757
  2951.   clipboard, copying to, 750
  2952.   clipped to boundaries, 589
  2953.   displaying in windows, 201
  2954.   drawing on printed page, 662
  2955.   extracting from a control, 596
  2956.   extracting from clipboard, 759
  2957.   multiline, 481
  2958.   print, commands required, 652
  2959.   scroll horizontally, 594
  2960. Text and graphics
  2961.   printing, 649
  2962. Text colors
  2963.   changing, 205-206
  2964. Text file
  2965.   loading, 663
  2966. TExtDeviceMode, 686. See also ExtDeviceMode
  2967.   declared, 680
  2968. TextOut, 201, 204-205, 211, 346, 662
  2969.   and printing, 653
  2970.   combining text and graphics, 673
  2971.   declared, 201-202
  2972.   using to display text, 202
  2973. TFarProc, 686, 692, 733
  2974. TFileDialog, 452-453
  2975.   creating an instance of, 454
  2976.   returning a value, 454
  2977. TFileWindow, 596, 663, 666-667
  2978.   adding printer output to, 664
  2979. tf_GetData, 611-612
  2980. tf_SetData, 611-612
  2981. TGroupBox, 587, 836
  2982.   participation in transfers, 608
  2983. TGroupBox object, 586
  2984.   pointer to, 588
  2985. THandle, 149, 353, 686
  2986. Thumb position, 640
  2987. Thumb selector, 609
  2988.   position of scroll bar, 632
  2989. Thunk, 691
  2990.   address of abort procedure's, 692
  2991.   disposing of, 692
  2992. TIFF. See Tag Image File Format
  2993. TileChildren, 822
  2994. Timer, 172, 384-385
  2995.   and double clicking, 192
  2996.   killing, 177
  2997.   limitations, 171
  2998.   number of, 171
  2999.   setting, 171-178, 175
  3000. Timer function, 170
  3001. TInputDialog, 446, 449-451, 454, 464, 480
  3002. TListBox, 836
  3003.   complex data type format, 608
  3004. TListBox object, 590
  3005. TListBoxTransferRec, 608
  3006. TMDIClient, 806, 816, 822, 836
  3007. TMDIWindow, 806-807, 809, 816-817, 819-822, 836
  3008. TMessage, 135, 199, 233, 289, 480
  3009.   declared, 189-191
  3010.   preparing various fields, 641
  3011.   using with WObjects methods, 418
  3012. TMessage parameters, 190
  3013. TMsg record, 417
  3014. TMultiEd, 595
  3015. TMultiListBoxTransferRec, 608
  3016. TMultiSelRec, 608-609
  3017. TObject, 128, 836
  3018. Toolbook, 14
  3019. Top-level menu
  3020.   as a command, 234
  3021.   caution about modifying, 265
  3022.   reducing the number of, 270
  3023. Top-level menu name
  3024.   highlighting and unhighlighting, 264
  3025. Touch, 58-59
  3026. TPaintStruct, 166
  3027. TPCW.CFG, 42, 830
  3028. TPCW.EXE, 37, 42
  3029.   running, 39
  3030. TPoint, 69, 275, 413, 641. See also MakePoint
  3031. TPUMOVER.EXE, 57-58
  3032. TPW (Turbo Pascal for Windows), 3, 8-9, 11, 14
  3033.   examining resources, 44
  3034.   file-handling capabilities, 84
  3035.   import library, 708
  3036.   OOP extensions, 13, 101
  3037.   problems starting, 30
  3038.   runtime library, 57, 63-64
  3039.   utilities, 12
  3040. TPW units, 64
  3041. TPW utilities
  3042.   trouble running, 27
  3043. TPW.CFG, 29, 42
  3044. TPW.DSK, 29-30
  3045. TPW.INI, 29, 48
  3046. TPW.TPL, 57, 63-64, 830
  3047.   transferring original, 59
  3048. TrackCursor, 77
  3049. TrackPopupMenu, 272, 275-276, 294
  3050.   declared, 271
  3051. TRadioButton, 588, 836
  3052.   values as Words, 608
  3053. TRadioButton object, 586
  3054. Transfer
  3055.   declared, 611
  3056. Transfer buffer, 429, 607, 612
  3057.   address of, 617
  3058.   copying data from to controls, 611
  3059.   Data record, defining, 611
  3060.   using, 612
  3061. Transfer buffer record, 609
  3062. Transfer mechanism, 578, 588, 607-617
  3063.   enabling, 611
  3064.   modal dialogs that use, 611
  3065. TransferData, 611
  3066. TranslateAccelerator, 283
  3067. TranslateMessage, 417, 550, 690
  3068.   declared, 552
  3069. TRect, 175, 329, 362, 623, 641, 704
  3070.   declared, 176
  3071. TScrollBar, 703, 836
  3072.   values as a record, 608
  3073. TScrollBar object, 598
  3074. TScrollBarTransferRec, 609
  3075. TScroller, 703-705, 818, 836
  3076. TSortedCollection, 123, 836
  3077. TSRs, 7, 27, 51
  3078. TStatic, 596, 631-632, 792, 836
  3079.   adding input capabilities, 592
  3080.   format of stored text, 609
  3081. TStatic object, 589, 593
  3082. TStrCollection, 836
  3083. TStream, 836
  3084. TStringCollection, 836
  3085. TTextMetric, 662
  3086. Turbo Debugger for Windows. See TDW
  3087. Turbo Debugger utilities, 59-60
  3088. Turbo Pascal. See DOS Turbo Pascal
  3089. Turbo Pascal for Windows. See TPW
  3090. Turbo Vision, 546. See TV
  3091. Turn-key application, 38
  3092. TV (Turbo Vision), 122
  3093. TWindow, 15, 112, 132, 134, 139, 149, 151, 154, 156, 170, 172, 
  3094.   428, 542, 572, 589, 603, 610, 623, 703, 836
  3095.   creating a new object decendant, 135
  3096.   implementing timers in, 171
  3097.   overriding standard Paint method, 168
  3098. TWindow descendant
  3099.   menu commands, 151
  3100. TWindow Init constructor
  3101.   declared, 132
  3102. TWindow instance
  3103.   application's main, 430
  3104. TWindow method
  3105.   calling MessageBox in, 141
  3106. TWindow.Paint
  3107.   declared, 165-166
  3108. TWindowAttr, 140
  3109.   declared, 565-566
  3110. TWindowsObject, 132, 154, 170, 193, 267, 428, 540, 542, 572, 
  3111.   589, 595-596, 602-603, 605, 611, 792, 836
  3112. TWndClass, 326, 478
  3113. Typecast, 93
  3114.   and PChar, 93
  3115. Typed-constant pointer, 721
  3116.  
  3117. U
  3118.  
  3119. UCSD Pascal, 87
  3120. Uncheck, 586
  3121. Undo
  3122.   multilevel capability, 516
  3123. Unit
  3124.   adding entry and exit code to, 739
  3125.   compiled separately, 831
  3126.   compiling, 33
  3127.   conflicting identifiers, 724
  3128.   creating resources for stand-alone, 546
  3129.   DLL, 715
  3130.   isolating main objects in, 529
  3131.   key word, 711
  3132.   linking to program module, 829
  3133.   modularizing a DLL, 718
  3134.   multiple, 529
  3135.   multiunit project, 723
  3136.   reason to modularize DLL, 718
  3137. Unit startup code, 738
  3138. Unpak, 59
  3139.   using to reinstall files, 59
  3140. Unrecoverable Application Error, 574
  3141. Untyped file variable, 351
  3142. Untyped handle, 353
  3143. untyped pointer, 650
  3144. UpdateWindow, 201
  3145. Use counter
  3146.   DLL's, 709
  3147. USER.EXE, 708
  3148. Uses declaration, 660, 708, 712, 715, 717, 723, 838
  3149. Uses directive, 738
  3150.  
  3151. V
  3152.  
  3153. Variables
  3154.   declaring, 9
  3155.   inspecting values of, 52
  3156.   storing large, 99
  3157. VGA, 24, 44
  3158.   output speed, 48
  3159. Video mode
  3160.   extended, 49
  3161. Virtual CRT, 301
  3162. Virtual index, 135, 136, 152, 166, 175, 248, 252, 288, 440
  3163. Virtual index expression, 136, 606
  3164.   no time penalty for using, 135
  3165. Virtual key, 278, 280, 284, 288, 595, 596
  3166. Virtual key event
  3167.   translated to wm_Char message, 552
  3168. Virtual key message, 550
  3169. Virtual
  3170.   key word, 119
  3171. Virtual memory, 8, 22-23, 513
  3172. Virtual method, 15, 117-120
  3173.   and subclassing, 437
  3174. Virtual method indexes, 15
  3175. Visual BASIC, 14
  3176. vk_Shift, 596
  3177.  
  3178. W
  3179.  
  3180. WaitMessage, 552
  3181. WEP, 737
  3182. wep_Free_DLL, 739
  3183. wep_System_Exit, 739
  3184. WhereX, 77
  3185. WhereY, 77
  3186. whiteness, 305
  3187. Whitewater Resource Toolkit. See WRT
  3188. white_Brush, 182
  3189. white_Pen, 182
  3190. Widget, 546
  3191. Wild card string, 464
  3192. WIN.INI, 36, 45, 627, 656, 662, 680, 682, 686, 720-721
  3193.   device profile string in, 655
  3194.   parsing strings in, 660
  3195.   RUN command, modifying, 643
  3196. WinCrt, 57, 65-66, 73, 76, 85, 111, 116, 130, 331, 731, 743, 
  3197.   753, 838
  3198.   adjusting program's window size, 70
  3199.   calling routines in Windows.API, 77
  3200.   extracting from TPW.TPL, 57
  3201.   good use for, 330
  3202.   largest buffer size, 70
  3203.   output window, 75
  3204.   width and height of output window, 69
  3205. WinCrt output window
  3206.   obtaining handle, 756
  3207.   title, 71
  3208. WinCrt program
  3209.   calling Windows functions from, 331
  3210.   ending, 72
  3211.   interrupting, 71-72
  3212. WinCrt tips, 76-77
  3213. WINDEBUG.386, 55
  3214. WINDEBUG.DLL, 47
  3215. WinDOS, 84-85, 453, 463
  3216. Window, 134
  3217.   adding control objects to, 577
  3218.   adding graphics to, 168
  3219.   adding text, graphics and other items, 134
  3220.   adjusting line height and spacing, 185
  3221.   background pattern, changing, 329
  3222.   borders, clipped from view, 360
  3223.   changes to horizontal or vertical, 194
  3224.   checking if valid, 794
  3225.   client area, 165, 168, 177, 206, 362, 412, 418, 582
  3226.   closing, 31
  3227.   creating with extended styles, 565
  3228.   default settings, 565
  3229.   direct communications between multiple, 572
  3230.   displaying directly on desktop, 160
  3231.   drawing shapes in, 170
  3232.   finding messages for a specific, 550
  3233.   forcing an immediate update, 201
  3234.   giving startup parameters, 139
  3235.   graphics, printing, 667
  3236.   image used when displaying, 364
  3237.   initializing, 172
  3238.   inserting controls into, 611
  3239.   invalidate, 200
  3240.   main, 537
  3241.   messages, sending to, 551
  3242.   modifying style bits, 194
  3243.   multiple, 165, 537, 562
  3244.   obtaining handle to main application, 170
  3245.   opening in random sizes and position, 139
  3246.   painting backgrounds, 325
  3247.   positioning the top left corner, 140
  3248.   printing text displayed in, 663
  3249.   printing the contents, 30
  3250.   reducing the size, 194
  3251.   scrollable, 699
  3252.   scrolling, 77
  3253.   Show method, 539
  3254.   simulated dumb-terminal, 66
  3255.   specifying width and height, 140
  3256.   style, 360
  3257.   switching to next, 35
  3258.   system colors, changing, 617
  3259.   update region, 201
  3260. Window background
  3261.   painting, 206
  3262. Window caption
  3263.   changing, 464
  3264.   changing to selected path name, 464
  3265. Window class, 193
  3266.   default name, 193
  3267.   initializing to default values, 375
  3268. Window class name, 756
  3269. Window classes, 13, 478
  3270. Window dimension
  3271.   informing the scroll bars, 704
  3272. Window handles, 756
  3273. Window menu, 35, 817. See also MDI
  3274. Window title, 132
  3275. Window caption, 430
  3276.   resetting, 465
  3277. Window class, 583
  3278. Window title, 565
  3279.   changing, 423, 565
  3280. Window, double border
  3281.   creating, 565
  3282. Windows Operating Environment
  3283.   and objects, 127
  3284.   as a single-tasking DOS program, 8
  3285.   conventional programming, 478, 480, 498, 550, 590, 603
  3286.   development packages, 11
  3287.   development system, 731
  3288.   early versions, 5
  3289.   patching custom code into, 603
  3290.   prevent from shuffling memory, 831
  3291.   printing, 652
  3292.   printing, configuring for, 654
  3293.   resource management, 226
  3294.   shutting down, 739, 796
  3295. Windows 1.0, 5
  3296. Windows 2.0, 5-6
  3297.   drivers, 686
  3298. Windows 2.1, 6
  3299. Windows 3.0, 3, 7, 11
  3300.   advantages, 8-10
  3301.   device driver support, 686
  3302.   disadvantages, 10-11
  3303.   modes, 8
  3304. Windows 3.0 software
  3305.   market for, 7
  3306. Windows 3.1, 7
  3307. Windows API, 78, 331
  3308.   accessing, 708
  3309. Windows application
  3310.   constructing, 134
  3311.   conventional, 318
  3312.   shortest possible, 130
  3313. Windows Application Program Interface. See API
  3314. Windows applications
  3315.   time, giving to other, 551
  3316. Windows Clipboard viewer, 748
  3317. Windows desktop, 562
  3318. Windows graphical interface
  3319.   key characteristics of, 229
  3320. Windows interface element
  3321.   for control objects, 579
  3322. Windows message, 135
  3323.   associating an object's method, 121
  3324.   finding details about individual, 133
  3325.   mnemonic codes, 136
  3326.   responding to specific, 134
  3327.   viewing, 53-55
  3328. Windows message constant, 136
  3329. Windows message routines, 550
  3330. Windows Notepad, 663
  3331. Windows program
  3332.   minimum-size, 127
  3333.   shutting down, 155
  3334. Windows routines
  3335.   calling, 78
  3336.   requiring MSG data structures, 418
  3337. Windows software development
  3338.   state of, 796
  3339. Windows user interface
  3340.   keyboard commands, 136
  3341. WINDOWS.H, 12, 284, 441, 729
  3342. Windows/286, 6-7
  3343. Windows/386, 6-7
  3344. WinProcs, 78, 331, 708, 713, 715
  3345.   described, 134
  3346. WinType, 141
  3347. WinTypes, 69, 78, 83, 133, 331, 708, 713, 715
  3348.   described, 134
  3349. WINTYPES.INT, 284
  3350. WINTYPES.PAS, 166, 326, 626
  3351. Wirth, Niklaus, 86
  3352. wm_Char, 550
  3353. wm_Command, 133, 136, 238, 266, 271, 280, 283, 288, 293, 371, 
  3354.   688, 698
  3355.   trapping, 289
  3356.   unprocessed, 294
  3357. wm_Create, 573
  3358. wm_DDE messages, 777
  3359. wm_DDE_Ack, 776-777, 785, 793
  3360. wm_DDE_Data, 777-778, 785, 793-794
  3361. wm_DDE_Execute, 795
  3362. wm_DDE_Initiate, 776-777, 785
  3363. wm_DDE_Request, 777-778, 785, 794
  3364. wm_DDE_Terminate, 778-779, 785-786, 793-794
  3365. wm_DeadChar, 550
  3366. wm_Destroy, 121, 178, 573
  3367. wm_First, 121-122, 135-137, 166, 231, 266, 288, 410
  3368. wm_GetText, 433, 482, 498
  3369. wm_HScroll, 640-641
  3370. wm_InitDialog, 688
  3371. wm_InitMenu, 768
  3372. wm_InitMenuPopup, 768
  3373. wm_KeyDown, 550
  3374. wm_KeyUp, 550
  3375. wm_LButtonDblClk, 189
  3376. wm_LButtonDown, 133, 135, 140, 152, 189, 573
  3377. wm_LButtonUp, 189
  3378. wm_MButtonDblClk, 189
  3379. wm_MButtonDown, 189, 573
  3380. wm_MButtonUp, 189
  3381. wm_MDIActivate, 821
  3382. wm_MouseMove, 189, 199, 410
  3383. wm_Paint, 166, 168-169, 201, 249, 379, 385, 551, 641, 705, 818
  3384. wm_ParentNotify, 565, 573, 574
  3385. wm_Paste, 434
  3386. wm_RButtonDblClk, 189
  3387. wm_RButtonDown, 55, 135, 140, 189, 275, 573
  3388. wm_RButtonUp, 189
  3389. wm_SetText, 482
  3390. wm_Size, 704
  3391. wm_SysCommand, 266, 283
  3392. wm_Timer, 121, 171-172, 175, 178, 385
  3393. wm_VScroll, 640
  3394. WObjects, 64, 78, 101, 105, 121, 128, 608, 835
  3395. WOBJECTS.TPU, 57, 64
  3396. WordBool, 202
  3397. Words
  3398.   broken automatically at line end, 596
  3399.   extracting from LongInt values, 331
  3400. Wordstar word processor, 34
  3401. WParam, 172, 191
  3402. WParamLo, 191
  3403. Write, 65, 69, 73, 647-648
  3404. Write and Writeln
  3405.   printing directly with, 649
  3406. WriteBuf, 73, 75, 111, 116
  3407.   declared, 74
  3408. WriteChar, 73, 76, 116
  3409. Writeln, 65, 69, 73, 76, 86, 647-648
  3410. WritePrivateProfileString, 627
  3411. WriteProfileString, 627
  3412. WRT (Whitewater Resource Toolkit), 16, 42-45, 145, 223
  3413.   memory management, 45
  3414.   Resource Attributes, 149
  3415. WRT menu editor, 141, 151, 229, 234
  3416. ws_Caption, 565
  3417. ws_Child, 564, 567, 572-573, 578
  3418. ws_ChildWindow, 564
  3419. ws_ex_DlgModalFrame, 565
  3420. ws_ex_NoParentNotify, 565
  3421. ws_Ex_NoParentNotify, 573
  3422. ws_HScroll, 594, 703
  3423. ws_Maximize, 360
  3424. ws_OverlappedWindow, 564, 572, 574
  3425. ws_PopUp, 360, 564, 567
  3426. ws_PopupWindow, 564
  3427. ws_SysMenu, 572, 574
  3428. ws_TiledWindow, 564
  3429. ws_Visible, 564, 572, 578
  3430. ws_VScroll, 594, 703
  3431.  
  3432. Y
  3433.  
  3434. Yes button, 463
  3435.  
  3436. Z
  3437.  
  3438. Zortech C++, 14
  3439.